1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

85 15 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 85
Dung lượng 7,72 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Page 1

Nội dung

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤP TRƯỜNG PHÁT HIỆN VÀ NHẬN DẠNG MỘT SỐ BIỂN BÁO GIAO THÔNG ĐƯỜNG BỘ NGU

TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP PHÁT HIỆN BIỂN BÁO

Phương pháp phát hiện biển báo giao thông

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 chúng sử dụng trong đề tài và được trình bày chi tiết trong phần 2.2.1 và 2.2.2

1.2Giớ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ở, được viết bằng C và C++ và có thể chạy trên Linux, Windows và Mac OS X Ngoài ra nó được phát triển mạnh trên các ngôn ngữ như 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].

Tiểu kết

1.1Phương pháp phát hiện biển báo giao thông

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 chúng sử dụng trong đề tài và được trình bày chi tiết trong phần 2.2.1 và 2.2.2

1.2Giớ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 mã nguồn mở, được viết bằng C và C++ và có thể chạy trên Linux, Windows và Mac OS X; đồng thời nó được phát triển mạnh trên các ngôn ngữ Python, Ruby, Matlab và một số ngôn ngữ khác, mang lại sự linh hoạt cho các dự án xử lý ảnh và thị giác máy tính trên nhiều nền tảng.

OpenCV được thiết kế để xử lý tính toán tối ưu và tập trung cho các ứng dụng thời gian thực trong lĩnh vực xử lý ảnh và video Nhờ được viết tối ưu bằng ngôn ngữ C, OpenCV có thể tận dụng những lợi thế của xử lý đa luồng trên các bộ vi xử lý hiện đại Intel cũng cung cấp thư viện Intel Integrated Performance Primitives (IPP) nhằm tối ưu hóa tự động hiệu suất trên kiến trúc của Intel Tuy nhiên, IPP là một thư viện thương mại, có giới hạn về sử dụng miễn phí.

OpenCV được thiết kế nhằm đơn giản hóa các tác vụ trong lĩnh vực thị giác máy tính, giúp người dùng nhanh chóng xây dựng những ứng dụng mạnh mẽ và tinh vi Thư viện này có hơn 500 hàm và được chia thành nhiều lĩnh vực ứng dụng như an ninh, y tế và robot, mang lại giải pháp thị giác máy tính toàn diện cho các dự án của bạn.

OpenCV bắt nguồn từ một sáng kiến nghiên cứu của Intel nhằm đẩy mạnh các ứng dụng thị giác máy tính tối ưu trên CPU Để đạt mục tiêu này, Intel đã triển khai nhiều dự án từ theo dõi thời gian thực cho các hệ thống nhận diện đến các bức tường hiển thị ảnh 3D Trong quá trình khảo sát, một nhà nghiên cứu của Intel đã đến thăm nhiều trường đại học và nhận thấy ở các tổ chức hàng đầu, đặc biệt là MIT Media Lab, nền tảng thị giác máy tính mở được phát triển rất mạnh và được chia sẻ nội bộ giữa sinh viên Nhờ sự hợp tác này, thay vì phải xây dựng lại các chức năng cơ bản từ đầu, một sinh viên mới có thể bắt đầu bằng cách kế thừa và mở rộng 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à:

Việc nâng cao nghiên cứu xử lý thị giác máy tính không chỉ dựa trên nguồn mở mà còn đòi hỏi tối ưu hóa mã lệnh cho nền tảng xử lý thị giác cơ bản Kết hợp hiệu quả giữa khai thác các công cụ nguồn mở và tối ưu hóa code sẽ nâng cao hiệu suất, giảm độ trễ và tăng tính ổn định trên hạ tầng xử lý thị giác hiện có Chiến lược này giúp tận dụng tối đa tài nguyên phần cứng, cải thiện độ chính xác và tính khả dụng của hệ thống, đồng thời đẩy nhanh tiến bộ và ứng dụng thực tiễn của công nghệ thị giác máy tính.

Phổ biến kiến thức xử lý thị giác máy tính bằng cách cung cấp những nền tảng chung làm cơ sở để các nhà phát triển có thể xây dựng trên đó, giúp mã nguồn dễ đọc và dễ bảo trì, đồng thời tăng khả năng tái sử dụng Điều này thúc đẩy việc chuyển nhượng và tích hợp các thành phần giữa các dự án khác nhau, đẩy nhanh quá trình triển khai các giải pháp xử lý thị giác.

Để thúc đẩy ứng dụng thương mại dựa trên thị giác máy tính, cần làm cho chúng linh hoạt và di động, tối ưu hóa hiệu suất của mã nguồn, và cấp giấy phép miễn phí mà không bắt buộc các ứng dụng thương mại phải mở nguồn hoặc trả phí.

Kể từ dự án đầu tiên vào năm 1999, thư viện OpenCV đã trở thành một lĩnh vực tích cực và quan trọng cho nhiều tổ chức phát triển, thu hút hơn 20.000 thành viên trên khắp thế giới Sự đóng góp rộng rãi từ cộng đồng khiến OpenCV được kỳ vọng sẽ có thêm nhiều bản cập nhật tốt hơn, nhằm cải thiện các hệ thống xử lý thị giác máy tính và các ứng dụng robot [12, Trang 1-3]

Hình 1.1Lịch sử phát triển của OpenCV [12, Trang 7]

OpenCV gồm 5 thành phần chính, trong đó 4 thành phần được thể hiện như trong Hình 1.2: CV chứa các thuật toán xử lý ảnh cơ bản và cao cấp cho xử lý thị giác máy tính; ML là thư viện phục vụ cho lĩnh vực máy học, bao gồm nhiều lớp thống kê và công cụ phân cụm; HighGUI chứa các thành phần nhập-xuất và các hàm lưu trữ, truy xuất hình ảnh và video; CXCore chứa nội dung và các cấu trúc dữ liệu cơ bản.

Hình 1.2Kiến trúc cơ bản của OpenCV [12, Trang 13]

Trên Hình 1.2 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:

 Theo vết mắt và miệng

 Xác định khung xương của đối tượng trong cảnh

Chương này trình bày các phương pháp tiếp cận cơ bản cho công tác phát hiện và nhận dạng biển báo giao thông, được áp dụng rộng rãi trong nhiều đề tài nghiên cứu và được hỗ trợ bởi nền tảng thư viện OpenCV cùng các kỹ thuật xử lý ảnh Thông qua phân tích các phương pháp này, chúng tôi đã lựa chọn và xác định các thuật toán và công nghệ phù hợp để xây dựng đề tài một cách hiệu quả, từ tiền xử lý ảnh, nhận diện đặc trưng đến phân loại biển báo Việc kết hợp giữa các thuật toán nhận dạng và công cụ OpenCV giúp tối ưu hóa quá trình xử lý ảnh và tăng độ chính xác trong nhận dạng biển báo giao thông.

GIỚI THIỆU PHƯƠNG PHÁP NHẬN DẠNG BIỂN BÁO GIAO THÔNG

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

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.1Khái quát phương pháp nhận dạng biển báo giao thông sử dụng trong đề tài

Trong bài toán nhận dạng biển báo giao thông từ ảnh RGB, hệ thống xác định vùng ảnh chứa biển báo nguy hiểm và tách vùng này ra khỏi ảnh đầu vào; sau đó biển báo được trích xuất, đưa vào cơ sở dữ liệu mẫu trong bộ phân loại và nhận diện 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.1Trì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ý

Loại bỏ những thông tin thừa trong ảnh

Chuyể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 ảnh

2.2Xá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

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 cho ảnh, ta dùng một mảng hai chiều có kích thước bằng với kích thước của ảnh cần tính các giá trị đặc trưng Haar-like Ở vị trí (x, y), giá trị của ảnh tích phân được tính bằng tổng các giá trị pixel của vùng từ (0, 0) đến (x-1, y-1) Việc tính toán đơn giản nhờ thực hiện các phép cộng số nguyên nên hiệu suất xử lý được tối ưu hóa, giúp tính nhanh các đặc trưng Haar-like.

Hình 2.5Cá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 “A 4”

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à biến thể cải tiến của thuật toán Boosting, được thiết kế để xử lý nhanh chóng các bài toán nhận dạng Với cơ chế kết hợp nhiều mô hình yếu thành một mô hình mạnh, Adaboost tăng tốc mang lại độ chính xác cao và hiệu suất tốt trong nhiều ứng dụng nhận dạng Việc triển khai khá đơn giản và dễ áp dụng, đồng thời có thể tùy chỉnh thông qua các tham số như số vòng boosting và hệ số học (learning rate), giúp người dùng điều chỉnh hiệu quả mà không cần kiến thức sâu về bộ học yếu Nhờ các ưu điểm trên, Adaboost tăng tốc được ứng dụng rộng rãi trong nhận dạng hình ảnh, chữ viết và nhận dạng tiếng nói.

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

Vào năm 1989, Schapire đã đưa ra các chứng minh đầu tiên về thuật toán boosting, mở ra một hướng tiếp cận quan trọng trong học máy Khoảng 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, 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í 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).

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 thành một bộ phân loại mạnh, nhằm nâng cao độ chính xác tổng thể trên tập dữ liệu Các bộ phân loại yếu là những mô hình đơn giản có độ chính xác chỉ trên 50%, đủ để được coi là yếu; khi được kết hợp, chúng được gọi là đã được “boost” Nhờ sự ghép nối và trọng số của các bộ phân loại yếu, Boosting tạo ra một bộ phân loại mạnh có hiệu suất nhận diện tốt hơn so với bất kỳ bộ phân loại yếu đơn lẻ nào.

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

Trong bài toán học máy hai lớp, cho tập huấn luyện D gồm n mẫu, ta chọn ngẫu nhiên n1 mẫu từ D để tạo tập D1 và từ đó huấn luyện classifier yếu C1 Tiếp theo, ta xây dựng tập D2 sao cho một nửa số mẫu của nó được C1 phân loại đúng và nửa còn lại bị C1 phân loại sai, nhằm cung cấp thêm thông tin bổ sung cho C1 Nhờ cách chọn này, D2 chứa các thông tin bổ sung cho bước huấn luyện C2 Cuối cùng, ta huấn luyện C2 từ D2, tạo thành hệ thống hai lớp có khả năng cải thiện hiệu suất phân loại bằng cách bổ sung tín hiệu từ D2 cho C1.

Ở bước tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu chưa được phân loại tốt do sự khác biệt kết quả giữa C1 và C2: những mẫu còn lại trong D mà C1 và C2 cho ra các kết quả khác nhau Như vậy, D3 sẽ bao gồm các mẫu mà C1 và C2 hoạt động không hiệu quả Cuối cùng, chúng ta sẽ huấn luyện bộ phân loại C3 từ D3.

Chúng ta có một “strong classifier” được tạo thành từ sự kết hợp của ba bộ C1, C2 và C3 Khi tiến hành nhận dạng một mẫu X, kết quả phân loại được quyết định bởi sự thỏa thuận giữa C1, C2 và C3 Nếu cả C1 và C2 cùng gán X vào một lớp duy nhất, lớp đó 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 hai lớp khác nhau, C3 sẽ quyết định X thuộc về lớp nào.

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 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

Khi làm việc với một tập hợp các thuật toán học yếu, kỹ thuật tăng cường (boosting) được áp dụng để tạo ra một thuật toán học máy mạnh hơn AdaBoost là một thuật toán boosting cho phép kết hợp nhiều learner yếu thành một mô hình mạnh bằng cách điều chỉnh trọng số của các mẫu và trọng số của từng learner dựa trên sai số Thuật toán gồm hai giai đoạn chính: đầu tiên là huấn luyện các learner yếu trên dữ liệu được điều chỉnh để tập trung vào những mẫu khó, và tiếp theo là tổng hợp các learner thành một classifier mạnh bằng cách gán trọng số cho từng learner dựa trên độ chính xác của chúng.

Trong quy trình phát triển thuật toán học máy, Giai đoạn 1 tập trung vào việc tạo ra các giả định yếu (weak hypotheses) từ các thuật toán học yếu để làm nền tảng cho quá trình dự đoán Giai đoạn 2 sẽ kết hợp và nâng cấp các giả định yếu này nhằm tạo ra các thuật toán học mạnh (strong algorithms) có hiệu suất dự đoán cao hơn.

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 (x i ,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 𝑓 𝑇 𝑥 < 0 thì x được phân lớp là -1

Nếu 𝑓 𝑇 𝑥 > 0 thì x được phân lớp là +1

Khởi tạo(Initialization): Cho trọng số 𝑊 𝑖 = 1

Lặp(Iterate):𝐹𝑜𝑟 𝑡 = 1, … , 𝑇 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ố 𝑊 1 , … , 𝑊 𝑁 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 ℎ 𝑡

Bước 3.1: Nếu 𝜀 𝑡 ≥ 0.5 thì quay lại bước lặp

Bước 3.2:Nếu 𝜀 𝑡 = 0 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 ℎ 𝑡

Bước 5: Cập nhật lại trọng số

Trong đó 𝑍 𝑡 là thừa số chuẩn hóa sao cho 𝑊 𝑖 𝑖 = 1

Tính chất quan trọng nhất của thuật toán Adaboost là có𝑓 𝑡+1 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.3Giới thiệu phương pháp phân tích thành phần chính (Principle Component Analysis - PCA)

Tiểu kết

2.1Khái quát phương pháp nhận dạng biển báo giao thông sử dụng trong đề tài

Trong ảnh RGB đầu vào, hệ thống xác định vùng chứa biển báo giao thông nguy hiểm và tách vùng này khỏi ảnh gốc; sau đó biển báo được trích xuất riêng và đưa vào bộ phân loại để so sánh với cơ sở dữ liệu mẫu nhằm 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.1Trì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ý

Loại bỏ những thông tin thừa trong ảnh

Chuyể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 ảnh

2.2Xá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

Dựa trên các đặc trưng Haar-like, giá trị của đặc trưng được xác định dựa trên độ chênh lệch giữa tổng các mức xám ở các vùng đen so với tổng các mức xám ở 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) Cách tiếp cận này cho phép mô tả đặc trưng hình ảnh một cách hiệu quả và nhạy với biến đổi cường độ sáng giữa các vùng, làm nền tảng cho nhận diện và phân loại đối tượng trong xử lý ảnh.

Để tính các đặc trưng Haar-like, ta phải thực hiện tổng giá trị của các vùng pixel trên ảnh, khiến chi phí tính toán rất cao và khó đáp ứng yêu cầu thời gian thực Do đó, Viola và Jones đã đề xuất khái niệm Integral Image (hình ảnh tổng tích phân), một bảng tổng các giá trị nhằm cho phép tính nhanh tổng của bất kỳ vùng nào chỉ bằng vài phép cộng trừ Nhờ phương pháp này, độ phức tạp tính toán được giảm đáng kể và hệ thống nhận diện khuôn mặt có thể hoạt động ở chế độ thời gian thực.

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 giá trị của Integral Image cho nhận diện Haar-like, ta dùng một mảng hai chiều có kích thước bằng với kích thước của ảnh Giá trị tại vị trí (x, y) của ảnh tích phân được tính bằng tổng các giá trị pixel của vùng từ (0,0) đến (x-1, y-1) Việc tính toán được thực hiện bằng các phép cộng nguyên đơn giản nên tốc độ thực thi được tối ưu hóa, giúp nhận diện các đặc trưng Haar-like nhanh chóng.

Hình 2.5Cá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 “A 4”

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.

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

Vào năm 1989, thuật toán boosting được Schapire trình bày với các chứng minh đầu tiên, mở ra nền tảng lý thuyết cho việc ghép nối nhiều mô hình yếu thành một mô hình mạnh 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, dù vẫn còn tồn tại một số hạn chế trong thực tế và chỉ tối ưu trong một số trường hợp nhất định Các thí nghiệm đầu tiên với thuật toán boosting được thực hiện bởi Drucker, Schapire và Simard trong lĩnh vực nhận dạng ký tự quang học (OCR – Optical Character Recognition).

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]

Thuật toán Boosting dựa trên nguyên lý kết hợp các bộ phân loại yếu thành một bộ phân loại mạnh nhằm tăng độ chính xác và hiệu quả nhận diện 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%, nhưng khi được ghép với nhau thông qua quá trình boosting, chúng được nâng cấp thành một mô hình tổng thể mạnh hơn Nhờ quá trình này, bộ nhận diện được “boost” và có thể phân loại chính xác hơn nhờ sự đóng góp của nhiều yếu tố yếu khác nhau.

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

Trong thiết kế hai lớp, tập D là tập huấn luyện gồm n mẫu Đầu tiên, ta chọn ngẫu nhiên n1 mẫu từ tập D (n1 < n) để tạo tập D1 Sau đó, ta huấn luyện weak classifier C1 từ tập D1 Tiếp theo, ta xây dựng tập D2 để huấn luyện bộ phân loại C2, sao cho một nửa số mẫu của D2 được phân loại đú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ẽ huấn luyện C2 từ D2.

Tiếp theo, chúng ta sẽ xây dựng tập D3 từ các mẫu chưa được phân loại tốt do sự kết hợp giữa C1 và C2, tức là những mẫu còn lại trong D mà C1 và C2 cho ra kết quả khác nhau Như vậy, D3 sẽ gồm những mẫu mà hai bộ phân loại C1 và C2 hoạt động không hiệu quả Cuối cùng, chúng ta sẽ huấn luyện bộ phân loại C3 từ tập D3.

Hiện tại chúng ta có một strong classifier dựa trên sự kết hợp của ba thành phần C1, C2 và C3 Khi nhận dạng một mẫu X, kết quả phân loại được quyết định bởi sự thỏa thuận giữa các bộ C1, C2 và C3: nếu C1 và C2 đồng ý gán X vào cùng một lớp, lớp đó chính là nhãn phân loại của X; ngược lại, nếu C1 và C2 phân X vào hai lớp khác nhau, C3 sẽ quyết định X thuộc lớp nào [3, Trang 14-15].

AdaBoost (Adaptive Boosting) là một bộ phân loại phi tuyến mạnh được cải tiến từ thuật toán Boosting, nhằm tăng tốc quá trình hình thành một bộ phân loại mạnh bằng cách lựa chọn các đặc trưng Haar-Like tối ưu từ các bộ phân loại yếu và ghép chúng lại theo một phương pháp tuyến tính Thuật toán sử dụng các trọng số để đánh dấu và nhấn mạnh các mẫu khó nhận diện, từ đó kết hợp các yếu tố đặc trưng thành một classifier tổng hợp có độ chính xác cao hơn trong các nhiệm vụ nhận diện và phân loại.

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]

Trong khuôn khổ bài viết, Giai đoạn 1 tập trung sinh ra các giả định yếu (weak hypotheses) từ các thuật toán học yếu, nhằm khai thác các mẫu dữ liệu tiềm ẩn và làm nền tảng cho tiến trình học tiếp Giai đoạn 2 biến các giả định yếu ấy thành các thuật toán học mạnh bằng cách kết hợp, tinh chỉnh và tối ưu hóa chúng, từ đó xây dựng các mô hình học máy có hiệu suất dự đoán và nhận diện cao hơn Qua hai giai đoạn này, quá trình phân tích dữ liệu được tối ưu hóa từ việc khởi tạo các giả định cơ bản cho các thuật toán đến việc phát triển các mô hình mạnh từ các yếu tố đã suy luận.

Với một tập dữ liệu huấn luyện gồm N cặp (x_i, y_i), x_i là vector đặc trưng Haar và y_i thuộc {+1, -1}, trong đó +1 đại diện cho đối tượng và -1 đại diện cho nền, một giả định yếu được đặt ra từ đầu Qua quá trình huấn luyện với số vòng lặp T, đầu ra cho bài toán là tồn tại một hàm f_T(x) có thể được sử dụng để phân loại các đặc trưng của vector x thành đối tượng hay nền.

Nếu 𝑓 𝑇 𝑥 < 0 thì x được phân lớp là -1

Nếu 𝑓 𝑇 𝑥 > 0 thì x được phân lớp là +1

Khởi tạo(Initialization): Cho trọng số 𝑊 𝑖 = 1

Lặp(Iterate):𝐹𝑜𝑟 𝑡 = 1, … , 𝑇 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ố 𝑊 1 , … , 𝑊 𝑁 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 ℎ 𝑡

Bước 3.1: Nếu 𝜀 𝑡 ≥ 0.5 thì quay lại bước lặp

Bước 3.2:Nếu 𝜀 𝑡 = 0 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 ℎ 𝑡

Bước 5: Cập nhật lại trọng số

Trong đó 𝑍 𝑡 là thừa số chuẩn hóa sao cho 𝑊 𝑖 𝑖 = 1

Tính chất quan trọng nhất của thuật toán Adaboost là có𝑓 𝑡+1 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.3Giới thiệu phương pháp phân tích thành phần chính (Principle Component Analysis - PCA)

THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH

Tiểu kết

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.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

Quá trình huấn luyện máy học đòi hỏi hàng nghìn tấm ảnh ở nhiều điều kiện ánh sáng và mức tương phản khác nhau để đảm bảo khả năng generalization cho mô hình Để có một bộ dữ liệu phù hợp, chúng tôi ghi lại các video biển báo và sau đó phát triển một chương trình nhỏ để tự động tách thành từng frame ảnh Việc chuyển từ video sang ảnh tách frame giúp tăng tốc quá trình thu thập dữ liệu và đồng thời mở ra đa dạng các đặc trưng hình ảnh Nhờ đó, bộ dữ liệu thu được có tính bao quát cao, phục vụ tốt cho quá trình huấn luyện và tối ưu hóa hiệu suất mô hình.

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

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; tuy nhiên, để phục vụ nghiên cứu, chúng tôi đã phân loại 10 biển báo nguy hiểm phổ biến và trình bày chúng trong bảng 3.1.

Bảng 3.1 Một số biển báo giao thông đường bộ

- 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”

3.2.2Huấ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, chúng tôi 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

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 “haarkit\temp\positive\rawdata”

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 “haarkit\temp\negative”

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.2Lấ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

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

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.3Huấ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 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” chúng tôi 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”

Giải thích ý nghĩa tham số được 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ể 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 ta có được file

Bước 2: Học huấn luyện với HaarTraining

Bước này tiếp tục sử dụng các chương trình trong bộ HaarKit để tạo ra file

XML chứa dữ liệu các đặc trưng của đối tượng được dùng cho chương trình nhận dạng sau này Đầu tiên, ta dùng công cụ haartraining.exe để tạo ra các phân tầng biểu diễn đặc trưng ở nhiều mức độ khác nhau Để gọi trình này, bạn chuẩn bị bộ dữ liệu gồm ảnh chứa đối tượng (positive) và ảnh không chứa đối tượng (negative) và chạy lệnh với các tham số phù hợp để sinh ra bộ phân loại Haar cùng các tệp cấu hình liên quan Quá trình huấn luyện sẽ xác định các ngưỡng và lớp phân loại, giúp hệ thống nhận diện xử lý nhanh và hiệu quả hơn khi làm việc với dữ liệu hình ảnh thực tế và tối ưu hóa cách lưu trữ, tổ chức dữ liệu trong XML.

“haartraining.exe”, ta 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 mô tả nội dung file haarTraining.bat và ý nghĩa các tham số: -data data/cascade xác định đường dẫn đến thư mục lưu trữ các phân tầng; -vec data/vector.vec là đường dẫn tới file vector.vec được tạo ở bước 1; -bg negative/infofile.txt là đường dẫn tới file chứa các mẫu ảnh Negative; -npos 1848 là số lượng ảnh Positive; -nneg 2805 là số lượng ảnh Negative; -nstages 25 là số giai đoạn phân tầng; -mem 1000 là dung lượng bộ nhớ tối đa dùng trong quá trình huấn luyện tính bằng MB; -mode ALL là giá trị mặc định; -w 24 -h 24 là kích thước của mẫu, trùng với giá trị dùng khi tạo file vector.vec; -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 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 ta 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, ta 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 ta sử dụng file “convert.bat” với những tham số thay đổi phù hợp

Trong hình 3.10, nội dung file convert.bat được giải thích với các tham số sau: data là thư mục chứa các phân lớp vừa được tạo ở bước trước và các phân lớp này được đánh số từ 0 đến n; output.xml là tên file XML được tạo ra từ quá trình chuyển đổi; 24 24 là kích thước của mẫu đầu ra.

Chạy trình “haarconv.exe” với các tham số như trên ta thu được file xml cần thiết

Hình 3.11 Cấu trúc của một tập tin XML

Hình 3.12Kết quả ảnh biển số 201a nhận được

Hình 3.13Kế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:

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 tận dụng một phần từ các ảnh đã dùng cho bước huấn luyện phát hiện biển báo, đồng thời bổ sung thêm một số ảnh nhằm tăng tính đa dạng Các ảnh này cần có sự đa dạng về điều kiện môi trường, góc chụp và ánh sáng khác nhau để cải thiện khả năng nhận diện trong các lần huấn luyện tiếp theo.

ĐÁNH GIÁ KẾT QUẢ CHƯƠNG TRÌNH

Ngày đăng: 27/11/2021, 09:12

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]Nguyễn Linh Giang, Nguyễn Mạnh Hiển, “Phân loại văn bản tiếng Việt với bộ phân loại vectơ hỗ trợ SVM”,Tạp chí CNTT&amp;TT, Tháng 06 năm 2006 Sách, tạp chí
Tiêu đề: Phân loại văn bản tiếng Việt với bộ phân loại vectơ hỗ trợ SVM
[2] Nguyễn Duy Khánh, Lê Đình Duy, Dương Anh Đức, “Phát hiện biển báo giao thông dùng đặc trưng cục bộ (local features)”, Hội thảo FAIR (Fundamental And Applied IT Research) lần V, Tháng 08-2011 Sách, tạp chí
Tiêu đề: Phát hiện biển báo giao thông dùng đặc trưng cục bộ (local features)
[3]Phạm Hồng Ngự, “Nhận dạng đối tượng sử dụng thuật toán AdaBoost”, Luận văn thạc sĩ khoa học công nghệ thông tin, Trường Đại Học Huế, 2009 Sách, tạp chí
Tiêu đề: “Nhận dạng đối tượng sử dụng thuật toán AdaBoost”
[4] Phan Sau Ra, Đặng Thị Kim Yến, “Face Regconition Using PCA And Neural Network”, Đồ án tốt nghiệp, Đại Học Sư Phạm Kĩ Thuật TP.HCM, 2012 Sách, tạp chí
Tiêu đề: “Face Regconition Using PCA And Neural Network”
[5] Lê Thanh Tâm, Trần Thái Sơn, Seichii Mita, “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”, Tuyển tập Công trình Nghiên cứu Công nghệ Thông tin và Truyền thông, 2009 Sách, tạp chí
Tiêu đề: “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”
[6] Lê Mạnh Tuấn, “Phát hiện mặt người trong ảnh và ứng dụng”, Khóa luận tốt nghiệp đại học hệ chính quy, Trường đại học Công Nghệ-Đại học Quốc Gia Hà Nội, 2009 Sách, tạp chí
Tiêu đề: “Phát hiện mặt người trong ảnh và ứng dụng”
[7]Trần Minh Văn, “Tìm hiểu phương pháp SVM và ứng dụng trong nhận dạng chữ viết tay trực tuyến”, Luận văn thạc sĩ công nghệ thông tin, Trường Đại Học Khoa Học Tự Nhiên-Đại học Quốc Gia Thành Phố Hồ Chí Minh, 2004.TÀI LIỆU TIẾNG ANH Sách, tạp chí
Tiêu đề: “Tìm hiểu phương pháp SVM và ứng dụng trong nhận dạng chữ viết tay trực tuyến”
[8] C. Bahlmann, Y. Zhu, V. Ramesh, M. Pellkofer, T. Koehler, “A System for Traffic Sign Detectiona, Tracking, and Recognition Using Color, Shape, and Motion Information”, Proceedings. IEEE Intelligent Vehicles Symposium,2005 Sách, tạp chí
Tiêu đề: “A System for Traffic Sign Detectiona, Tracking, and Recognition Using Color, Shape, and Motion Information”
[9] C. Paulo and P. Correia, “Automatic detection and classification of traffic signs”Image Analysis for Multimedia Interative Serrvices, 2007. WIAMIS ’07. Eighth International Workshop on, June 2007 Sách, tạp chí
Tiêu đề: “Automatic detection and classification of traffic signs”
[10] C. Y. Yang, C. S. Fuh, S. W. Chen, P. S. Yen, “A Road Sign Recognition System Based on Dynamic Visual Model”,CVPR’03 Proceedings of the 2003 IEEE computer society conference on Computer vision and pattern recognition, Pages 750-755, 2003 Sách, tạp chí
Tiêu đề: “A Road Sign Recognition System Based on Dynamic Visual Model”
[11] D. Gavrila, “Traffic sign recognition revisited”, DAGM-Symposium, Pages 86 – 93, 1999 Sách, tạp chí
Tiêu đề: “Traffic sign recognition revisited”
[12] Gary Bradski and Adrian Kaehler, “Learning OpenCV Computer Vision with the OpenCV Library”, O’Reilly, October 1, 2008 Sách, tạp chí
Tiêu đề: Learning OpenCV Computer Vision with the OpenCV Library”
[13] G. Loy, “Fast shape-based road sign detection for a driver assistance system”, In IEEE/RSJ International Confrence on Intelligent Robots and System, Pages 70-75, 2004 Sách, tạp chí
Tiêu đề: “Fast shape-based road sign detection for a driver assistance system”
[14] Luis David Lopez and Olac Fuentes, “Color-Based Road Sign Detection and Tracking”, International Conference on Image Analysis and Recognition (ICIAR), Montreal, CA, August 2007 Sách, tạp chí
Tiêu đề: “Color-Based Road Sign Detection and Tracking”
[15]Rafael C. Gonzalez, Richard E. Woods, “Digital Image Process, 3 rd Edition”, Prentice Hall, August 31, 2007 Sách, tạp chí
Tiêu đề: Digital Image Process, 3"rd" Edition”
[16]Viola and Jones, “Rapid object detection using a boosted cascade of simple feature”,Computer Vision and Pattern Recognition, 2001 Sách, tạp chí
Tiêu đề: “Rapid object detection using a boosted cascade of simple feature”
[17]Yoav Freund, Robert E.Schapire, “A Short Introdution to Boosting”,Journal of Japanese Society for Artificial Intelligence, 14(5):771-780, September, 1999.TÀI LIỆU INTERNET Sách, tạp chí
Tiêu đề: A Short Introdution to Boosting
[18] “Adaptive Boosting – Adaboosting”, http://www.csie.ntu.edu.tw/~b92109/course/Machine%20Learning/ Sách, tạp chí
Tiêu đề: Adaptive Boosting – Adaboosting
[19] “PCA – Principle Component Analysis” , http://phvuresearch.wordpress.com/2011/10/05/pca-principal-component-analysis/ Sách, tạp chí
Tiêu đề: PCA – Principle Component Analysis

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w