Do vậy, trong luận văn này, để có thể đáp ứng tốt các yêu cầu về độ tin cậy, ổn định trong việc quan trắc hệ thống giao thông, thì học viên đề nghị sử dụng phương pháp Haar-like để phát
Trang 1MỤC LỤC
DANH MỤC HÌNH VẼ
Hình 2.1: 4 đặt trưng Haar-like cơ bản
Hình 2.2: Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở
Hình 2.3: Cách tính Integral Image của ảnh
Hì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
Hình 2.5 : Ví dụ cách tính nhanh tổng điểm ảnh của vùng D trên ảnh với các
đặc trưng xoay 45o
Hình 2.6 : Boosting
Hình 2.7 : cascade of classifiers
Hình 2.8: Cascade of boosting classifiers
Hình 3.1: Sơ đồ tổng quan hệ thống phát hiện và theo vết xe oto
Hình 3.2a: Minh họa cho quá trình lấy mẫu xe (phía trước xe)
Hình 3.2b: Minh họa cho quá trình lấy mẫu xe (phía trước xe)
Hình 3.2c: Minh họa cho quá trình lấy mẫu xe (phía trước xe)
Hình 3.3a: Minh họa cho quá trình lấy mẫu xe (phía sau xe)
Hình 3.3b: Minh họa cho quá trình lấy mẫu xe (phía sau xe)
Hình 3.4a: Minh họa quá trình kiểm thử cơ sở dữ liệu “cars.xml”
Hình 3.4b: Minh họa quá trình kiểm thử cơ sở dữ liệu “cars.xml”
Hình 3.4c: Minh họa quá trình kiểm thử cơ sở dữ liệu “cars.xml”
Trang 2Hình 3.5: Sơ đồ khối của chương trình nhận dạng xe oto
Hình 3.6: Sơ đồ khối hệ thống hoàn chỉnh tổ chức phần mềm hệ thống
Hình 3.7: Mô tả hệ thống phát hiện xe oto dùng thuật toán Haar
Hình 3.8: Mẫu camera được sử dụng trong luân văn
Hình 4.1: Kết Quả thực thi hệ thống với góc quay trực diện
Hình 4.2: Kết Quả thực thi hệ thống với góc quay trực diện
Hình 4.3: Kết quả thực thi hệ thống với góc quay lệch 30º
Trang 3
DANH MỤC BẢNG BIỂU
Bảng 2.1: Thuật toán phát hiện đồng thời co giãn vùng đặc trưng đối tượng [3, trang11]
Bảng 3.1: Cấu trúc file cơ sở dữ liệu đặc trưng của đối tượng xe oto
Bảng 3.2: Mã lệnh điển hình của thuật toán phát hiện và nhận dạng xe oto
Bảng 3.3: Mã lệnh thực hiện thuật toán đếm xe oto
Trang 4DANH SÁCH CÁC TỪ VIẾT TẮT
STT Từ viết tắt Tên đầy đủ
1 SVM Support Vector Machine
2 HMM Hidden Markov Model
3 SNoW Sparse Network of Winnows
4 SAT Summed Area Table
5 OCR Optical Character Recognition
6 OpenCV Open Source Computer Vision
7 IPP Intel Intergrated Performance Primitives
8 BSI Back-illuminated Sensor
9 SoC System On Chip
Trang 5
MỤC LỤC 1
DANH MỤC HÌNH VẼ 1
DANH MỤC BẢNG BIỂU 3
DANH SÁCH CÁC TỪ VIẾT TẮT 4
CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG DÒ TÌM OTÔ TRÊN ĐƯỜNG CAO TỐC 12
1.1 GIỚI THIỆU CHUNG 12
1.2 MỤC ĐÍCH NGHIÊN CỨU 13
1.3 CÁC ĐỀ TÀI ĐÃ NGHIÊN CỨU VÀ HƯỚNG NGHIÊN CỨU ĐỀ NGHỊ 13
1.4 TỔNG QUAN VỀ PHÁT HIỆN VÀ NHẬN DẠNG XE 14
1.4.1 Phát hiện xe 14
1.4.2 Nhận dạng xe 14
1.5 LÝ DO THỰC HIỆN ĐỀ TÀI 14
1.6 MỤC TIÊU ĐỀ TÀI 15
1.7 NHIỆM VỤ LUẬN VĂN 15
1.7.1 Phạm vi thực hiện 15
1.7.2 Dự kiến các lĩnh vực ứng dụng của đề tài 16
CHƯƠNG II: CƠ SỞ LÝ THUYẾT VỀ PHÁT HIỆN ĐỐI TƯỢNG 17
2.1 CÁC PHƯƠNG PHÁP PHÁT HIỆN HÌNH ẢNH XE 17
2.1.1 Phát hiện dựa trên ảnh 17
2.1.2 Phát hiện dựa trên dạng hình học 18
Trang 62.2 PHƯƠNG PHÁP ĐƯỢC SỬ DỤNG TRONG LUẬN VĂN 20
2.2.1 Các đặc trưng Haar-like 20
2.2.2 Tổng quan về Adaboot 23
2.2.2.1 Tiếp cận Boosting 24
2.2.2.2 Adaboost 25
2.2.3 Giai đoạn huấn luyện của bộ phân loại (stage) 29
2.2.4 Tầng của bộ phân loại (Cascade of Classifiers) 30
2.2.5 Cascade of boosting classifiers 33
2.2.6 Đặc tính co giãn vùng đặc trưng đối tượng 34
2.2.6.1 Phát biểu bài toán 34
1.2.6.2 Thuật toán 35
CHƯƠNG III : XÂY DỰNG HỆ THỐNG PHÁT HIỆN VÀ THEO VẾT XE OTO36 3.1 Ý TƯỞNG XÂY DỰNG VÀ HOẠT ĐỘNG CỦA HỆ THỐNG 36
3.2 TIẾN HÀNH XÂY DỰNG CƠ SỞ DỮ LIỆU ẢNH XE 37
3.2.1 Xây dựng cơ sở dữ liệu 37
3.2.1.1 Thu thập hình ảnh xe 37
3.2.1.3 Tiến hành lấy mẫu, tạo bộ cơ sở dữ liệu huấn luyện 38
3.2.1.4 Tiến hành học huấn luyện cho máy tính 41
3.2.2 Ghi nhận và thử mẫu cơ sở dữ liệu kết quả 45
3.3 TIẾN HÀNH XÂY DỰNG THUẬT TOÁN 47
3.3.1 Thuật toán phát hiện xe 47
3.3.2 Thuật toán nhận dạng kiểu xe 47
Trang 73.3.4 Thuật toán đếm số lượng đối tượng 49
3.4 TIẾN HÀNH XÂY DỰNG PHẦN MỀM 50
3.4.1 Chuẩn bị hệ thống và các công cụ lập trình thích hợp 50
3.4.2 Tổ chức chương trình phần mềm hệ thống 50
3.4.3 Sử dụng thuật toán Haar-like phối hợp với các mã lệnh trên Visual C++ 52
3.4.4 Xây dựng phần mềm 53
3.5 HỆ THỐNG PHẦN CỨNG VÀ CÁC CÔNG CỤ LIÊN QUAN 54
3.5.1 Camera 54
3.5.2 Máy tính cá nhân và các công cụ phần mềm 55
3.6 VÀI NÉT VỀ THƯ VIỆN OPENCV 55
3.6.1 OpenCV là gì? 55
3.6.2 Các hàm xử lý của thư viện OpenCV 56
a , Các hàm xử lý dữ liệu cơ bản 56
b , Các hàm về phân tích vận động và theo vết đối tượng 57
c , Các hàm về nhận dạng đối tượng 57
d, Các hàm về giao diện và thu nhận video 57
CHƯƠNG IV : KẾT QUẢ ĐẠT ĐƯỢC VÀ ĐÁNH GIÁ 58
4.1 KẾT QUẢ ĐẠT ĐƯỢC 58
4.2 DEMO HỆ THỐNG 59
4.3 NHẬN XÉT 61
4.3.1 Ưu điểm 61
4.3.2 Nhược điểm 61
Trang 84.3.2.1 Chủ Quan 62
4.3.2.1 Khách Quan 62
4.4 KẾT LUẬN 64
Trang 9
LỜI CẢM ƠN
Trước tiên, xin cảm ơn thầy PGS.TS Nguyễn Tiến Dũng và Th.S Nguyễn Việt
Hưng vì đã gợi mở, quan tâm, giúp đỡ cho học viên trong suốt thời gian thực hiện đề tài tốt nghiệp này
Bên cạnh đó, học viên cũng xin gởi lời cảm ơn đến tất cả những thầy cô đã trực tiếp giảng dạy trong suốt khóa học; những người bạn đã quan tâm, động viên và chia sẻ kiến thức cũng như kinh nghiệm chuyên ngành trong quá trình học tập và rèn luyện vừa qua của học viên
Cũng xin chân thành cảm ơn sự quan tâm hỗ trợ, tạo điều kiện và hết lòng động viên về tinh thần lẫn vật chất của các thành viên trong gia đình trong suốt thời gian qua
Sau cùng, học viên gởi lời chúc sức khỏe, hạnh phúc đến quý thầy cô, gia đình
Trang 10ABSTRACT
Now, in the age of the 21st century, thanks for the high speed development of Science and Technology, human is inventing and processing many scientific projects with theirs mega-structures From the alternatives of machines and engines instead of human in works which required a high-level of decision and concentrating, the results, facts and effects is being trusted These things are really huge meaning, thus increases values of lives ‘s quality days by days
In this thesis, issues named “Vehicles Detection and Recognition Based on Computer Vision”, also have same ways of thinking above This is one of the most amazing applications and projects which is resrearched and approached by many scientists who working in fields of “Computer Vision” and “Digital Image Processing” cause of demands in real lives and diversified approaching methods
This project shows some problems which related to the basic knowledge that being built on contents within The author used tools called “OpenCV” to apply Haar-like features that ran on Visual C++.NET environment and AdaBoost (Adaptive Boost) algorithms to speed up the detection and recognition processing on all perspectives and types of vehicles Results have got a feature called “realtime effects” in detection and recognition.This is importance for modifying traffics, controlling lanes, extracting information of vehicles, …
Trang 11TÓM TẮT LUẬN VĂN THẠC SĨ
Trong thời đại của thế kỷ 21, với sự phát triển nhảy vọt của trình độ Khoa học
kỹ thuật, con người đã tạo nên và phát triển nhiều công trình khoa học mang tính tầm
cỡ Với sự thay thế dần của máy móc cho con người trong các nhiệm vụ mang tính chính xác và tập trung cao thì kết quả đạt được đã hoàn toàn được tin cậy và đánh giá cao Điều này thực sự có ý nghĩa to lớn và góp phần tăng thêm giá trị và chất lượng cuộc sống
Đề tài luận văn này, nhận dạng xe trên cơ sở thị giác máy tính, cũng không nằm ngoài ý nghĩa đó Đây là một dạng ứng dụng thú vị mà nhiều nhà khoa học đã, đang và
sẽ không ngừng nghiên cứu vì nhu cầu thực tiễn và đa dạng phương pháp tiếp cận
Trong đề tài này sẽ trình bày trong đó các vấn đề liên quan tới kiến thức nền tảng xây dựng nên luận văn Học viên đã sử dụng công cụ OpenCV ứng dụng các đặc trưng Haar-like chạy trên nền tảng Visual C++.NET và thuật toán tăng tốc AdaBoost nhằm nâng cao tốc độ phát hiện và nhận dạng các hình thái khác nhau của xe Kết quả thu được có đặc tính thời gian thực các diễn tiến của quá trình phát hiện và nhận dạng
xe
Trang 12CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG DÒ TÌM OTÔ TRÊN ĐƯỜNG CAO TỐC
1.1 GIỚI THIỆU CHUNG
Thị giác là giác quan cho phép con người cũng như hầu hết các loài động vật khác thu thập thông tin nhanh nhất, tinh tế nhất và cũng là kênh thông tin trao đổi tin cậy giúp đưa ra những quyết định kịp thời và nhanh chóng trong hầu hết các hoạt động trong thực tế của con người Vì vậy, với ý nghĩa vô cùng quan trọng đó, cùng với sự phát triển của khoa học kĩ thuật và ứng dụng của nó trong nhiều lĩnh vực đã được tiến hành rộng rãi, nhất là trong ứng dụng liên quan tới xử lý ảnh của đối tượng cụ thể là xe hơi trong cảnh quang giao thông, đặc biệt là trong tình trạng xe đang chuyển động
Từ giữa thế kỷ XX đến nay, đặc biệt là từ thập niên 80, ngày càng có nhiều ứng dụng có chức năng phát hiện vật thể, ví dụ như xe hơi, là một công việc khó trong lĩnh vực xử lý ảnh Chức năng này đặc biệt hữu dụng trong rất nhiều môi trường và lĩnh vực khác nhau (bao gồm an ninh, thị giác người máy, giải trí, điều tiết giao thông, …) Hàng loạt các cuộc nghiên cứu và thử nghiệm về vấn đề tự động nhận dạng xe hơi đã được tiến hành mạnh mẽ, song song cùng lúc với sự phát triển mạnh mẽ của hệ thống giao thông trên thế giới cũng như ở Việt Nam, là một ví dụ minh chứng bởi tính cụ thể,
đa dạng, phức tạp và cấp thiết
Thông thường, các đặc tính của xử lý và phân tích ảnh chủ yếu bị ảnh hưởng bởi đặc tính của ảnh tĩnh và ảnh động (video) Các lý do có thể đưa ra là: vị trí tương quan giữa máy ảnh và đối tượng, xe bị che khuất một phần hoặc toàn phần; sự kết hợp của các đặc điểm xe cộ, kích thước, màu sắc, ảnh hưởng của cảnh nền (độ sáng chói, độ tương phản, nhiễu giống đối tượng, …) là rất khác nhau, và nó ảnh hưởng đến chất lượng của quá trình phát hiện và nhận dạng xe Còn ảnh hưởng về mặt chủ quan cũng
Trang 13có thể kể đến như hướng quan sát ghi hình của camera, hướng ánh sáng, đặc tính kỹ thuật của máy ảnh, camera, tốc độ hệ thống máy xử lý chủ (máy tính PC hoặc laptop) cũng gây ra ảnh hưởng không nhỏ đến đề tài
1.2 MỤC ĐÍCH NGHIÊN CỨU
Hệ thống nhận dạng xe dùng trong quan sát giao thông là một ứng dụng quan trọng trong cuộc sống hiện đại hàng ngày Với hệ thống như vậy thì một thuật toán phát hiện và nhận dạng theo thời gian thực là cần thiết khi đầu vào của hệ thống là một chuỗi hình ảnh video Việc ứng dụng một thuật toán để giải quyết vấn đề phát hiện xe
là một trong những khâu quan trọng trong hệ thống quan trắc giao thông Với đề tài
“nghiên cứu và phát triển thuật toán dò tìm oto trên đường cao tốc” sẽ phát hiện tất cả các loại xe oto đang lưu thông trên cao tốc
1.3 CÁC ĐỀ TÀI ĐÃ NGHIÊN CỨU VÀ HƯỚNG NGHIÊN CỨU ĐỀ
NGHỊ
Cho đến nay, có rất nhiều các đề tài nghiên cứu về hệ thống phát hiện và nhận dạng xe mà chủ yếu là thực hiện trong các phòng thí nghiệm Khoa học máy tính của các trường Đại học trên thế giới [1][2] Các nghiên cứu này chủ yếu xoay quanh vấn đề tìm hướng tiếp cận và xây dựng mô hình thuật toán phát hiện và nhận dạng xe trong
việc quan sát giao thông nói chung
Các đề tài này, phần lớn đã nêu bật được phương pháp “Lưu lượng quang”, đây
là phương pháp điển hình cho việc quan trắc hệ thống các vật thể chuyển động có quỹ đạo nói chung hoặc hệ thống xe tham gia giao thông nói riêng [1][2][12] Ngoài ra, còn có phương pháp xử lý trên pixel đặc trưng đối tượng, chủ yếu là phân tích diện tích
và chu vi đường bao điểm ảnh của đối tượng, coi đó là đặc trưng của loại xe quan sát
Trang 14Nhưng bên cạnh đó, chỉ một số ít các đề tài lại ít sử dụng phương pháp phân tích
và dò tìm đặc trưng Haar-like Do vậy, trong luận văn này, để có thể đáp ứng tốt các yêu cầu về độ tin cậy, ổn định trong việc quan trắc hệ thống giao thông, thì học viên đề nghị sử dụng phương pháp Haar-like để phát hiện xe trên cơ sở thuật toán trích đặc trưng AdaBoost
1.4.2 Nhận dạng xe
Với kết quả phát hiện xe ở bước trên, từ đó so sánh với cơ sở dữ liệu đã được xây dựng sẵn để tiến hành nhận dạng được kiểu dáng xe đó là loại xe nào (trong trường hợp nhận dạng nhiều loại xe khác nhau) Tư thế quan sát xe từ camera, vị trí của xe so với camera và các thông tin liên quan luôn được cập nhật tức thời bởi máy tính
1.5 LÝ DO THỰC HIỆN ĐỀ TÀI
Nắm được ý nghĩa quan trọng của kênh thông tin thu được trong hầu hết các tình huống dưới dạng hình ảnh Sự phát triển mạnh mẽ và đa dạng của xã hội với nhiều
Trang 15nghiên cứu và ứng dụng thuộc lĩnh vực này luôn được tiến hành và áp dụng rộng rãi trong nhiều ngành nghề và lĩnh vực khoa học kỹ thuật khác nhau trên thế giới, đặc biệt
Vì vậy, nghiên cứu ứng dụng đề tài phát hiện và nhận dạng xe xử lý trên cơ sở thị giác máy tính trong thời gian thực mang tính cấp thiết
1.6 MỤC TIÊU ĐỀ TÀI
Nghiên cứu ứng dụng phát hiện nhận dạng xe trên cơ sở thị giác máy tính, đáp ứng trong thời gian thực
1.7 NHIỆM VỤ LUẬN VĂN
Phân tích và tổng hợp các phương pháp nhận dạng xe
Xây dựng chương trình nhận dạng xe dựa trên công cụ Thị giác máy tính
1.7.1 Phạm vi thực hiện
Về lý thuyết: phương pháp phù hợp phát hiện và nhận dạng xe
Về ứng dụng: chương trình phần mềm phát hiện và nhận dạng xe
Các điều kiện thực hiện: camera ghi hình trực diện từ phía sau đuôi của
xe hoặc phía trước xe, cường độ ánh sáng là 300 ÷ 500 lux (độ sáng tiêu chuẩn bình thường) hoặc ánh sáng ngoài trời ban ngày bình thường
Đối tượng là các loại xe với các hình dáng khác nhau (xe hơi cá nhân, xe buýt, xe tải…) Việc nhận dạng được thực hiện từ phía sau đuôi của xe
Trang 16hoặc phía trước xe Từ đó đưa ra số lượng oto xuất hiện tại mỗi thời điểm
1.7.2 Dự kiến các lĩnh vực ứng dụng của đề tài
Giám sát an ninh
Quan sát và điều tiết giao thông
Trang 17CHƯƠNG II: CƠ SỞ LÝ THUYẾT VỀ PHÁT HIỆN ĐỐI TƯỢNG
2.1 CÁC PHƯƠNG PHÁP PHÁT HIỆN HÌNH ẢNH XE
Phát hiện hay phát hiện đối tượng chuyên biệt, ví dụ như xe oto trong cảnh quang giao thông, liệu có xuất hiện trong ảnh thu được từ camera (hình động) hay những tấm hình tĩnh dựa trên sự trợ giúp của máy tính từ lâu đã được con người nghiên cứu và phát triển bởi nó đóng vai trò là cơ sở chung và là nền tảng để nghiên cứu và ứng dụng trong các lĩnh vực và các hệ thống khác Trong quá trình nghiên cứu và phát triển, thì yêu cầu được đặt lên hàng đầu là yếu tố chính xác và phải thực hiện nhanh chóng trong thời gian thực Do vậy, việc này cần có sự phối hợp và bổ sung chặt chẽ cho nhau của hai lĩnh vực là Xử lý ảnh (Image Processing) và Thị giác máy tính (Computer Vision)
Có rất nhiều phương pháp và hướng tiếp cận của vấn đề phát hiện xe oto Định
vị xe trong một cảnh quang giao thông là phương pháp đơn giản, bởi vì nó chỉ xác định
vị trí hay tọa độ của chiếc xe có trong ảnh đó mà thôi Việc tiếp theo là nhận dạng (vehicle recognition) là công việc phức tạp hơn Tác vụ này sẽ so sánh một ảnh của xe hơi trong ảnh đầu vào với tất cả các ảnh có trong cơ sở dữ liệu đã được huấn luyện trước đó và đưa ra ảnh gần nhất
Có hai hướng tiếp cận chính thường được sử dụng để phát hiện xe: các phương pháp dựa trên ảnh và các phương pháp dựa trên dạng hình học Các phương pháp có thể được liệt kê ra như sau: [9, trang 17÷ 25]
2.1.1 Phát hiện dựa trên ảnh
Các phương pháp thuộc nhóm này dựa trên một tập hợp các hình mẫu của đối tượng và sử dụng cửa sổ trượt để phát hiện xe Cách làm này khác biệt so với các phương pháp dựa trên khuôn mẫu (cần thiết phải có sẵn mô hình xe, hình thái xe) Để
Trang 18trích đặc trưng từ các mẫu ví dụ, cần phải thực hiện việc cho học huấn luyện dưới dạng thống kê hoặc các thuật toán học máy (machine learning) với đủ nhiều các mẫu ảnh có chứa đối tượng xe và không chứa đối tượng xe
Do sự xuất hiện của xe trong ảnh là ngẫu nhiên với nhiều góc quan sát khác nhau nên thường phải xấp xỉ chúng để tạo nên sự phân biệt của hai đối tượng Tùy theo cách tiếp cận xác suất nào mà sẽ xuất hiện các phương pháp phát hiện tương ứng Liệt
kê dưới đây là một số các phương pháp thuộc nhóm này:
Phương pháp EigenObjects (PCA)
Phương pháp Fisher ‘s Linear Discriminant
Các phương pháp dựa trên Eigen-space
Các phương pháp dựa trên mang nơ-ron nhân tạo
Support Vector Machine – SVM
Phương pháp Mô hình Markov ẩn (Hidden Markov Model – HMM)
Phương pháp Sparse Network of Winnows (SNoW)
Do nhóm phương pháp này dựa trên việc huấn luyện sao cho thu được mô hình đối tượng xe từ một tập dữ liệu tích cực (positive - ảnh có chứa hình xe hơi) và một tập dữ liệu không tích cực (negative - ảnh không chứa hình đối tượng) nên chúng có sự tương quan so sánh trực tiếp đến các đặc điểm hình học của một kiểu xe điển hình
Nhược điểm của phương pháp này đòi hòi phải luôn có sẵn cơ sở dữ liệu hình xe rất lớn Để có thể phát hiện và nhận dạng được xe, máy tính phải luôn dò trong cơ sở dữ liệu hình này rồi mới đưa ra kết quả
2.1.2 Phát hiện dựa trên dạng hình học
Khác với nhóm phương pháp vừa nêu ở trên, các phương pháp thuộc nhóm này quan tâm đến các đặc điểm cấu trúc hình học của xe.Vì vậy chúng còn được gọi là
Trang 19nhóm tiếp cận dựa trên đặc trưng (feature - based) Tùy theo cách triển khai vấn đề mà chúng được chia thành hai phân nhóm:
Các phương pháp Bottom – Up
Phương pháp dựa trên luồng ánh sáng (hay lưu lượng quang - optical flow)
Nhóm phương pháp Bottom – Up chủ yếu dùng các đặc điểm hình dáng bất biến của xe đối với ngoại cảnh và nền ảnh để phát hiện ra xe Rồi tùy vào mối liên hệ của chúng với nhau mà thiết lập các liên kết giữa các đặc điểm bất biến này ngay trong ảnh đầu tiên, tiếp theo sẽ dựa vào đó mà tìm chúng trên các ảnh kế tiếp
Phương pháp của phân nhóm thứ hai, luồng ánh sáng, là phương pháp xử lý tổng quan ánh sáng theo tuần tự các bước Thứ nhất, thuật toán tìm đặc trưng quan trọng của đối tượng (ví dụ như góc của xe) trong hai khung hình liên tiếp nhau Thứ hai, dùng thuật toán để hợp nhất tính liên quan đồng nhất giữa các đặc trưng đó (trong trường hợp này là góc của xe) Bước cuối cùng, các luồng đặc trưng đối tượng đã được trích xuất khỏi ảnh được tập hợp lại thành một nhóm nếu các khoảng cách Euclide của các luồng (vị trí đối tượng và hướng chuyển động của đối tượng) là nhỏ.[1, phần 2.1]
Cụ thể, phương pháp này không chỉ sử dụng các thuật toán học (learning algorithm)
để huấn luyện tạo các bộ phân lớp (cascade) bằng các hình mẫu ví dụ tích cực (có chứa hình ảnh xe) và các hình mẫu không tích cực (không chứa hình ảnh xe hơi) được lựa chọn cẩn thận (đây là phương pháp dựa trên ảnh) Các hình ảnh sau khi được chọn lọc cẩn thận sẽ được quyết định đặc trưng cho từng loại xe bởi thuật toán học hầu hết có liên quan trực tiếp đến các đặc trưng riêng biệt trên hình ảnh xe hơi (đặc điểm các chi tiết trên xe, gương, đầu xe, đuôi xe, dàn đèn, các gờ nổi, …) Kỹ thuật tăng tốc cải thiện tốc độ tìm kiếm dựa trên các bộ phân loại bằng cách lấy ra các trọng số cho các mẫu ví dụ dùng trong huấn luyện.[1, phần 2.2]
Trang 202.2 PHƯƠNG PHÁP ĐƯỢC SỬ DỤNG TRONG LUẬN VĂN
Trong luận văn này, việc phát hiện xe là sự kết hợp giữa một thuật toán tăng tốc AdaBoost (Adaptive Boost – tăng tốc thích nghi) và đặc tính đáp ứng nhanh của các đặc trưng Haar Đây là một phương pháp được xem như là phối hợp của cả hai phương pháp đã nêu ở trên là : Phương pháp dựa trên ảnh và Phương pháp dựa trên dạng hình học
Để thực hiện chức năng phát hiện và nhận dạng xe oto, học viên đã triển khai sử dụng thuật toán phát hiện đối tượng (dựa trên các đặc trưng Haar-like và thuật toán tăng tốc AdaBoost) trên từng frame ảnh thu được từ nguồn tín hiệu hình ảnh (camera hoặc file video) rồi dựa vào các thuật toán xử lý ảnh và thị giác máy tính để thi hành các tác vụ lên các xe đã được phát hiện và nhận dạng Sau đây là phần trình bày phương thức hoạt động của phương pháp phát hiện xe oto bằng các đặc trưng được liệt
kê sau đây:
2.2.1 Các đặc trưng Haar-like
Viola và Jones dùng 4 đặc trưng cơ bản [14] để xác định khuôn mặt người Mỗi đặc trưng Haar–like là sự kết hợp của hai hay ba hình chữ nhật "trắng" hay "đen" như trong hình sau:
Hình 2.1: 4 đặt trưng Haar-like cơ bản
Để áp dụng các đặc trưng này vào bài toán xác định mặt người, 4 đặt trưng like cơ bản được mở rộng ra, và được chia làm 3 tập đặc trưng như sau:
Trang 211.Đặc trưng cạnh (edge features):
Hình 2.2: Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở
Lợi ích của các đặc trưng Haar-like là nó diễn đạt được tri thức về các đối tượng trong ảnh (bởi vì nó biểu diễn mối liên hệ giữa các bộ phận của đối tượng), điều mà bản thân từng điểm ảnh không diễn đạt được Để tính giá trị các đặc trưng haar-like, ta tính sự chênh lệch giữa tổng của các pixel của các vùng đen và các vùng trắng như trong công thức sau:
f(x) = Tổng vùng đen (pixel) - Tổng vùng trắng (pixel) (2.1)
Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi hỏi tính run-time Do đó Viola và Jones đưa ra một khái
niệm gọi là Integral Image để tính toán nhanh cho khác feature cơ bản Sau này, Lienhart kế thừa gọi Integral Image là SAT – Summed Area Table và đưa ra thêm khái
Trang 22niệm RSAT – Rotated Summed Area Table dùng để tính toán nhanh cho các đặc trưng
xoay 1 góc 45o Integral Image là một mảng 2 chiều với kích thước bằng với kích của
ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh
( , ) = ∑ , ( , ) (2.2)
Hình 2.3: Cách tính Integral Image của ảnh
Sau khi đã tính được Integral Image, việc tính tổng điểm ảnh của một vùng bất kỳ nào đó trên ảnh thực hiện rất đơn giản theo cách sau: (Giả sử ta cần tính tổng điểm ảnh của vùng D như trong hình 11):
D = A + B + C + D – (A+B) – (A+C) + A (2.3)
Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự như vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị tại điểm P1 Vậy ta có thể viết lại biểu thức tính D ở trên như sau:
Trang 23
Hình 2.5 : Ví dụ cách tính nhanh tổng điểm ảnh của vùng D trên ảnh
với các đặc trưng xoay 45 o
Với các đặc trưng Haar-like xoay 45o Integral Image tại một điểm (x, y) được tính
theo công thức 2.5:
( , ) = ∑ , | | ( ′, ′) (2.5)
Tổng pixel của một vùng bất kỳ trên ảnh vẫn được tính theo cách sau:
D = A + B + C + D – (A+B) – (A+C) + A (2.6)
Như vậ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ó :
Thuật toán học máy Adaboost được phát triển thuật toán boosting, do đó học viên
sẽ trình bầy một chút về thuật toán boosting trước khi trình bầy về adaboost
Trang 242.2.2.1 Tiếp cận Boosting
Về lịch sử, boosting bắt nguồn từ câu hỏi nổi tiếng được đưa ra bời Kearns vào
năm 1989 : “Liệu có thể tạo ra một strong classifier từ một tập các bộ phân loại yếu?” Năm 1990, Robert Schapire đưa ra thuật toán boosting đầu tiên, tiếp đến năm
1993 thì nó được Drucker, Schapire và Simard kiểm nghiệm trong các chương trình
nhận dạng ( OCR application ) Freund đã tiếp tục các nghiên cứu của Schaprire, và
đến năm 1995 thì ông cùng với Schapire phát triển boosting thành adaboost
Như vậy, nguyên lý cơ bản của boosting là sự kết hợp các weak classifiers thành một strong classifier Trong đó, weak classifier 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”
Để hiểu cách hoạt động của thuật toán boosting, ta xét một bài toán phân loại 2
lớp (mẫu cần nhận dạng chỉ thuộc một trong hai 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 đú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ả
Trang 25phâ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
Hình 2.6 : Boosting
2.2.2.2 Adaboost
Như đã biết, AdaBoost ( Adaptive Boost ) là một bộ phân loại mạnh phi tuyến
phức dựa trên hướng tiếp cận boosting được Freund và Schapire đưa ra vào năm 1995 Adaboost hoạt động trên nguyên tắc kết hợp tuyến tính các weak classifier dựa trên các đặc trưng Haar- Line để hình thành một strong classifier
Để có thể kết hợp các bộ phân loại yếu, adaboost sử dụng một trọng số (weight)
để đánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, cứ mỗi weak classifier được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng weak classifier tiếp theo: tăng trọng số của các mẫu bị nhận dạng sai và
Trang 26giảm trọng số của các mẫu được nhận dạng đúng bởi weak classifier vừa xây dựng Bằng cách này, các weak classifier sau có thể tập trung vào các mẫu mà các weak classifier trước đó chưa thực hiện tốt Sau cùng các weak classifier sẽ được kết hợp tùy theo mức độ ‘tốt’ của chúng để tạo nên một strong classifier
Các weak classifiers hk(x) là các bộ phân loại yếu, được biểu diễn như sau:
fk: giá trị của đặc trưng Haar-like
pk: hệ số quyết định chiều của bất phương trình
Công thức trên có thể diễn giải như sau: Nếu giá trị đặc trưng của mẫu cho bởi hàm đánh giá của bộ phân loại vượt qua một ngưỡng cho trước thì mẫu đấy là khuôn
mặt ( gọi là object : đối tượng cần nhận dạng ), ngược lại thì mẫu là background (
không phải là đối tượng )
Trang 27Thuật toán AdaBoost:
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: vớ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
Trang 28Sơ đồ khối:
Quá trình huấn luyện bộ phân loại được thực hiện bằng một vòng lặp mà ở mỗi bước lặp, thuật toán sẽ chọn ra weak classifier ht thực hiện việc phân loại với lỗi εt nhỏ nhất (do đó sẽ là bộ phân loại tốt nhất) để bổ sung vào strong classifier Mỗi khi chọn được 1 bộ phân loại ht, Adaboost sẽ tính giá trị αt theo công thức ở trên αt cũng được chọn trên nguyên tắc làm giảm thiểu giá trị lỗi εt
Hệ số αt nói lên mức độ quan trọng của ht:
Trong công thức của bộ phân loại H(x):
( )= ấ (∑ ∝ ℎ ( )) (2.14)
Bắt đầu huấn luyện
Khởi tạo tập đặc trưng ban đầu
Xác định các đặc trưng trong từng mẫu, xây dựng các
bộ phân loại yếu tương ứng
Đặc trưng haar-like
Tính toán giá trị lỗi cho mỗi đặc trưng
False alarm ≤ max false alarm
Tập các mẫu
và trọng số Tập các
Trang 29Ta thấy tất cả các bộ phân loại ht đều có đóng góp vào kết quả của bộ phân loại H(x), và mức độ đóng góp của chúng phụ thuộc vào giá trị αt tương ứng:
ht với αt càng lớn thì nó càng có vài trò quan trọng trong H(x)
ht+1 sẽ ưu tiên học cách phân loại những mẫu này
Vòng lặp xây dựng strong classifier sẽ dừng lại sau T lần lặp Trong thực tế cài đặt (thư viện OpenCV của Intel), người ta ít sử dụng giá trị T vì không có công thức nào đảm bảo tính được giá trị T tối ưu cho quá trình huấn luyện Thay vào đó, người ta
sử dụng giá trị max false positive hay max false alarm (tỉ lệ nhận dạng sai tối đa các
mẫu background) Tỉ lệ này của bộ phân loại cần xây dựng không được phép vượt quá
giá trị này Khi đó, qua các lần lặp, false alarm của strong classifier Ht(x) xây dựng
được (tại lần lặp thứ t) sẽ giảm dần, và vòng lặp kết thúc khi tỉ lệ này thấp hơn max false alarm
2.2.3 Giai đoạn huấn luyện của bộ phân loại (stage)
Thuật toán tăng tốc thích nghi (Adaptive Boost) được sử dụng làm phương pháp
chính để phát hiện và phát hiện đối tượng xe trong luận văn Thuật toán tăng tốc là mô hình học máy hiệu quả được sử dụng nhiều trong các đề tài về nhận dạng trước đây
Mô hình này chỉ sử dụng các bộ phân loại yếu
Trang 30Tác vụ học được dựa trên N mẫu huấn luyện ( x1, y1), …, ( xN, yN ) với
x € ℜ và yi € {-1,1} xi là vector có thành tố k Mỗi thành tố k có chức năng mã hóa một đặc trưng có liên quan cho tác vụ học Ngõ ra mong muốn sau khi mã hóa có hai giá trị là -1 và 1 Trong trường hợp phát hiện đối tượng vật thể , thành tố ngõ vào xi là một đặc trưng Haar-like Các giá trị ngõ ra -1 và 1 cho biết ảnh xử lý có chứa hay là không chứa đối tượng mong muốn
2.2.4 Tầng của bộ phân loại (Cascade of Classifiers)
Ta thấy quá trình huấn luyện, bộ phân loại phải duyệt qua tất cả các đặc trưng của
các mẫu trong tập training Việc này tốn rất nhiều thời gian Tuy nhiên, trong các mẫu
đưa vào, không phải mẫu nào cũng thuộc loại khó nhận dạng, có những mẫu
background rất dễ nhận ra (ta gọi đây là những mẫu background đơn giản) Đối với
những mẫu này, ta chỉ cần xét một hay vài đặc trưng đơn giản là có thể nhận diện được chứ không cần xét tất cả các đặc trưng Nhưng đối với các bộ phân loại thông thường thì cho dù mẫu cần nhận dạng là dễ hay khó thì nó vẫn sẽ xét tất cả các đặc trưng mà
nó rút ra được trong quá trình học Do đó, chúng tốn thời gian xử lý một cách không cần thiết
Cascade of Classifiers được xây dựng chính là nhằm rút ngắn thời gian xử lý, giảm thiểu false alarm cho bộ phân loại Cascade tree gồm nhiều stage (hay còn gọi là layer), mỗi stage của cây sẽ là một stage classifier Một mẫu để được phân loại là đối tượng thì nó cần phải đi qua hết tất cả các stages của cây Các stage classifiers ở stage sau được huấn luyện bằng những mẫu negative mà stage classifier trước nó nhận dạng sai, tức là nó sẽ tập trung học từ các mẫu background khó hơn, do đó sự kết hợp các stage classifiers này lại sẽ giúp bộ phân loại có false alarm thấp Với cấu trúc này, những mẫu background dễ nhận diện sẽ bị loại ngay từ những stages đầu tiên, giúp đáp
ứng tốt nhất đối với độ phức tạp gia tăng của các mẫu đưa vào, đồng thời giúp rút ngắn thời gian xử lý Ví dụ, trong luận văn này, các bộ phân loại được huấn luyện qua ít nhất
Trang 3112 giai đoạn (stage) Đến giai đoạn cuối cùng, giá trị false alarm = 0.5 ≈ 2.44 x 10
và độ trùng khít (hit rate) khoảng 0.995 ≈ 0.942
Thuật toán Cascade training [13]:
Minh họa thuật toán Cascade training:
1 Gọi:
F là giá trị false alarm và d là độ chính xác của weak classifier ở mỗi stage
F target: Giá trị max false alarm
P, N là số lượng mẫu positive và negative
Pi, Ni là tập positive và negative cho bộ phân lớp ở tầng thứ i
F i , D i : Giá trị false alarm và độ chính xác của cascade trước khi đến tầng
N = { số mẫu sai ở stage hiện tại phân loại sai }
P = { số mẫu positive mà stage hiện tại phân loại dúng }
Trang 32Hình 2.7 : cascade of classifiers
Hình 2.7 minh họa sự huấn luyện của một cascade gồm N stages Ở mỗi stage,
weak classifier tương ứng sẽ được huấn luyện sao cho độ chính xác của nó là h và false alarm bằng f (Hình 2.7) [4, phần 4]
Giả sử, thiết lập ban đầu với các giá trị − = 0.5
Trang 33hợp các bộ phân loại yếu bằng cách dò lại trọng số các mẫu huấn luyện Bộ phân loại yếu được dùng cho giai đoạn đầu của quá trình huấn luyện, dùng để tập hợp và đúc kết các đặc trưng sơ của tập huấn luyện Tại mỗi tầng huấn luyện, bộ phân loại dựa theo các đại lượng đặc trưng vừa được cập nhật tại tầng kế trước (false-alarm, hit-rate) được thêm vào nhằm tăng thêm tính chính xác trong quá trình tính toán trọng số đặc trưng Với việc tăng dần số giai đoạn huấn luyện và số lượng các bộ phân loại yếu, sẽ là cần thiết để tính ra các thông số false-alarm rateứng với mỗi hit-rate đã tính được sẽ làm tăng tính chính xác cho tác vụ phát hiện đối tượng
2.2.5 Cascade of boosting classifiers
Cascade of boosting classifiers là mô hình cascade of classifiers với mỗi classifier được xây dựng bằng Adaboost sử dụng haar-like
Hình 2.8: Cascade of boosting classifiers
Viola và Jones đã sử dụng rất thành công cascade of boosting classifiers cho bài toán nhận dạng mặt người Với tập huấn luyện gồm 4196 hình mặt người được đưa về
ảnh grayscale kích thước 24x24 và 9500 hình background, hai ôngđã xây dựng cấu trúc cascade tree gồm 38 stage với tổng cộng 6060 đặc trưng haar-like Thực nghiệm đã cho thấy classifier ở stage đầu tiên sử dụng 2 đặc trưng và loại được khoảng 50% mẫu
background (không phải mặt người) và có độ chính xác là d = 100% Classifier ở stage
thứ 2 sử dụng 10 đặc trưng loại được 80% mẫu background với độ chính xác vẫn là
100% Hệ thống này được so sánh với hệ thống của Rowley-Baluja-Kanade (sử dụng
Trang 34mạng neural), Schneiderman-Kanade (sử dụng phương pháp thống kê), và cho thấy tỉ
lệ nhận dạng là ngang nhau, trong khi hệ thống của Viola và Jones chạy nhanh hơn đến
15 lần so với hệ thống của Rowley-Baluja-Kanade và nhanh hơn 600 lần hệ thống của Schneiderman-Kanade
Lý do mà cấu trúc cascade đạt tốc độ nhận dạng nhanh chính là nhờ nó sớm loại
bỏ được các mẫu background đơn giản (thường có số lượng lớn hơn nhiều so với các mẫu chứa object – các mẫu chưa đối tượng cần tiến hành nhận dạng) Bên cạnh đó, hệ
thống của Viola và Jones cũng đạt được độ chính xác khá cao nhờ vào thuật toán
cascade training, các bộ nhận dạng được huấn luyện bằng AdaBoost với đặc trưng Haar-like mô tả tốt thông tin đối tượng, cùng với cách Integral Image tính nhanh các đặc trưng, không làm giảm tốc độ nhận dạng của hệ thống Như vậy, mô hình Cascade
of Boosted Classifiers thật sự là một cách tiếp cận tốt cả về tốc độ lẫn khả năng nhận
dạng, rất phù hợp với bài nhận dạng xe oto
2.2.6 Đặc tính co giãn vùng đặc trưng đối tượng
2.2.6.1 Phát biểu bài toán
Không phải lúc nào đối tượng xuất hiện trong ảnh cũng xuất hiện với vị trí tọa
độ hoặc diện tích vị trí chiếm chỗ là không đổi, mà ngược lại, các đối tượng xuất hiện tại rất nhiều vị trí khác nhau và diện tích chiếm chỗ khác nhau Do đó, để có thể phát hiện ra đặc trưng đối tượng trong ảnh với các diện tích chiếm chỗ khác nhau thì cần một thuật toán phát hiện đối tượng bám theo tính co giãn của đặc trưng đối tượng Một trong những ưu điểm của phương pháp đặc trưng Haar-like là dễ dàng co giãn cửa sổ đặc trưng Thuật toán này phát hiệnđặc trưng với các ảnh chia nhỏ chứa các các đặc trưng tìm được trong ảnh bắt đầu từ phía trên bên trái và ảnh chia nhỏ bắt đầu được lớn dần theo hướng qua phải và hướng xuống dưới Giải pháp thích hợp để khoanh vùng đặc trưng ảnh là khoanh vùng bao gồm tất cả các ảnh chia nhỏ chứa đặc trưng vừa tìm được Khi đối tượng trong ảnh có xu hướng tăng dần diện tích chiếm chỗ trong ảnh (ví