TÓ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 Haarlike 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. Nội dung luận văn gồm 5 chương: Chương 1: Giới thiệu tổng quan Chương 2: Cơ sở lý thuyết Chương 3: Xây dựng hệ thống Chương 4: Kết quả Nhận xét – Phân tích Chương 5: Kết luận và hướng phát triển đề tài
Trang 1TÀI LIỆU THAM KHẢO & TRÍCH DẪN
Trang 2LIỆT KÊ CÁC HÌNH
Hình 2.1a, b, c, d: Các đặc trưng cạnh, đường, bao quanh tâm, đường chéo
Hình 2.2 : Ảnh chia nhỏ tại tọa độ (x,y)
Hình 2.3 : Tổng các giá trị pixel nằm trong vùng A
Hình 2.4 : Ví dụ về các tư thế của hình chữ nhật đặc trưng
Hình 2.5 : Lược đồ cơ bản của AdaBoost
Hình 2.6 : Thuật toán học AdaBoost
Hình 2.7 : Mô hình minh họa tác vụ phát hiện vật thể dùng chuỗi cascade
Hình 2.8 : Dùng chuỗi cascade đã được huấn luyện để phát hiện cửa sổ con phù hợp Hình 2.9 : Cấu trúc các chuỗi cascade song song
Hình 2.10 : Cấu trúc các chuỗi cascade nối tiếp, với N giai đoạn học huấn luyện
Hình 3.1 : Minh họa quá trình lấy mẫu
Hình 3.2 : Minh họa quá trình học huấn luyện
Hình 3.3 : Minh họa quá trình kiểm thử cơ sở dữ liệu “car_back.xml”
Hình 3.4 : Minh họa quá trình kiểm thử cơ sở dữ liệu “bus_vn_full_22112008.xml” Hình 3.5 : Minh họa quá trình kiểm thử cơ sở dữ liệu “truck_vn_26112008.xml”
Hình 3.6 : Sơ đồ khối của quá trình nhận dạng xe
Hình 3.7 : Mô hình hóa thuật toán ước lượng khoảng cách
Hình 3.8 : Mô hình camera quan sát trong không gian 3-D
Hình 3.9 : Minh họa kết quả ước lượng khoảng cách
Hình 3.10 : Minh họa kết quả đếm số lượng xe có trong hình
Hình 3.11 : Sơ đồ khối tổ chức phần mềm hệ thống
Hình 3.12 : Sơ đồ khối hệ thống hoàn chỉnh tổ chức phần mềm hệ thống
Hình 3.13 : Mô tả hệ thống phát hiện xe dùng thuật toán Haar
Hình 3.14 : Giao diện chương trình nhận dạng xe
Hình 3.15 : Mẫu camera được sử dụng trong luận văn
Trang 3LIỆT KÊ CÁC BẢNG
Bảng 2.1 : Các dạng thuật toán học huấn luyện AdaBoost
Bảng 2.2 : Thuật toán phát hiện đồng thời co giãn vùng đặc trưng đối tượng
Bảng 3.1
Bảng 3.1a : Mẫu xe hơi du lịch cá nhân
Bảng 3.1b : Mẫu xe buýt
Bảng 3.1c : Mẫu xe tải
Bảng 3.2 : Cấu trúc file cơ sở dữ liệu đặc trưng của đối tượng xe hơi cá nhân
Bảng 3.3 : Kết quả kiểm thử cơ sở dữ liệu đặc trưng xe hơi cá nhân
Bảng 3.4 : Kết quả kiểm thử cơ sở dữ liệu đặc trưng xe buýt
Bảng 3.5 : Kết quả kiểm thử cơ sở dữ liệu đặc trưng xe tải
Bảng 3.6 : Tổng kết các kết quả kiểm thử cơ sở dữ liệu
Bảng 3.7 : Mã lệnh điển hình của thuật toán phát hiện và nhận dạng xe hơi
Bảng 3.8 : Mã lệnh thực hiện thuật toán ước lượng khoảng cách
Bảng 3.9 : Mã lệnh thực hiện thuật toán đếm xe
Bảng 4.1 : Các kết quả xử lý nhận dạng
Bảng 4.1a : Kết quả xử lý nhận dạng xe buýt
Bảng 4.1b : Kết quả xử lý nhận dạng xe hơi cá nhân
Bảng 4.1c : Kết quả xử lý nhận dạng tải
Bảng 4.2 : Kết quả xử lý nhận dạng xe tổng hợp
Bảng 4.3 : Đánh giá độ chính xác trong nhận dạng của phần mềm luận văn
Trang 4PHẦN A
GIỚI THIỆU
Trang 5Đại Học Quốc Gia Tp Hồ Chí Minh CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập – Tự Do – Hạnh Phúc
- - - o O o - - -
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Ngày tháng năm sinh :
I TÊN ĐỀ TÀI:
NHẬN DẠNG XE TRÊN CƠ SỞ THỊ GIÁC MÁY TÍNH
II NHIỆM VỤ:
- 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 III NGÀY GIAO NHIỆM VỤ: ngày 30 tháng 01 năm 2008
IV NGÀY HOÀN THÀNH NHIỆM VỤ: ngày 30 tháng 11 năm 2008
V CÁN BỘ HƯỚNG DẪN: TS TRƯƠNG ĐÌNH CHÂU
Giáo Viên Hướng Dẫn Chủ Nhiệm Ngành Bộ Môn
Nội dung và đề cương Luận văn Thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua
Ngày … tháng … năm 200… PHÒNG ĐÀO TẠO SAU ĐẠI HỌC KHOA QUẢN LÝ NGÀNH
Trang 6LỜI CẢM ƠN
Trước tiên, xin cảm ơn thầy TS Trương Đình Châu 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 và bạn bè
Trường Đại học Bách Khoa Tp Hồ Chí Minh
Tháng 11 năm 2008
Học viên
Võ Hồng Phong
Trang 7LÝ LỊCH TRÍCH NGANG
Họ và tên : VÕ HỒNG PHONG
Phái : Nam
Ngày sinh : 22-02-1982
Nơi sinh : Tp Nha Trang – tỉnh Khánh Hòa
Hộ khẩu TT : 8/C3 Âu Cơ – phường 10 – quận Tân Bình – Tp HCM
Địa chỉ email : vhphong_nt@yahoo.com.vn hoặc vhphong@gmail.com
QUÁ TRÌNH ĐÀO TẠO:
9/2000 – 4/2005 : Sinh viên khoa Điện - Điện tử, bộ môn Kỹ thuật Điện tử - hệ
chính quy - trường ĐH SPKT Tp HCM
9/2006 đến nay : học viên cao học Khoa Điện – Điện tử, chuyên ngành Tự
động hóa - hệ chính quy – trường ĐH Bách Khoa Tp HCM
QUÁ TRÌNH CÔNG TÁC:
2005 – 11/2006 : Quản trị mạng tại Công ty Phần mềm Sài gòn (SSP – Saigon
Software Park)
Trang 8ABSTRACT
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 sci entists 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 “real- time effects” in detection and recognition This is importance for modifying traffics, controlling lanes, extracting information of vehicles, …
Trang 9TÓ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
Nội dung luận văn gồm 5 chương:
Chương 1: Giới thiệu tổng quan
Chương 2: Cơ sở lý thuyết
Chương 3: Xây dựng hệ thống
Chương 4: Kết quả - Nhận xét – Phân tích
Chương 5: Kết luận và hướng phát triển đề tài
Trang 10PHẦN B
NỘI DUNG
Trang 11xe đ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
Trang 12Thô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 có 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 Tác vụ này phát hiện các loại xe trong tầm khoảng cách trung bình và tầm khoảng cách xa (trên 20m) [9, trang 13 15] [12, trang 410 411]
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
Trang 13Cá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
Như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
xe đang được kỳ vọng hay không Nếu có xe thì ngay lập tức chỉ ra vị trí và phạm vi chiếm chỗ của đối tượng xe đó có trong ảnh Đây là bước quan trọng đầu tiên trong hầu hết các ứng dụng phân tích vật thể nói chung và xe tham gia giao thông nói riêng (ví dụ: nhận dạng kiểu dáng xe, định vị xe trong ảnh, bám theo xe, nhận biết
vị trí và tư thế của xe có trong ảnh,…)
Trang 141.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 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 nghiê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 là phát hiện và nhận dạng xe hơi
Bài toán phát hiện và nhận dạng xe được nhiều nhóm các nhà khoa học quan tâm và thực hiện nhưng để đáp ứng được vấn đề xử lý trong thời gian thực là một vấn đề tương đối khó Thực tế cho thấy các kết quả còn hạn chế, tốc độ xử lý chậm, quá trình xử lý nhiều nhóm lệnh trên máy tính chủ khiến cho tốc độ bị trì hoãn mặc
Trang 151.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, 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 container) Việc nhận dạng được thực hiện từ phía sau đuôi của
Trang 16Có rất nhiều phương pháp và hướng tiếp cận của vấn đề phát hiện xe hơi Đị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
Trang 17Có 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)
Để trí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 xuấ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à
Trang 18mộ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à nhó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
Trang 19tượ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]
2.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 hơi, 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
Trang 20bày phương thức hoạt động của phương pháp phát hiện xe hơi bằng các đặc trưng được liệt kê sau đây:
2.2.1 Các đặc trưng Haar-like
Mục đích của việc sử dụng các đặc trưng Haar-like là đảm bảo yêu cầu đáp ứng thời gian thực Mỗi một đặc trưng Haar-like bao gồm 2 hoặc 3 khối hình màu trắng và đen liên kết nhau (Hình 2.1 a, b, c, d) [1, trang 4] [4, trang 2] [9, trang 33]
Hình 2.1a: Các đặc trưng cạnh
Hình 2.1b: Các đặc trưng đường
Trang 21Hình 2.1c: Các đặc trưng bao quanh tâm
Hình 2.1d: Đặc trưng đường chéo
Giá trị của đặc trưng Haar-like được xác định bởi độ chênh lệch giữa tổng các giá trị pixel mức xám nằm trong vùng đen so với vùng trắng
Cách dùng “ảnh chia nhỏ” (integral image) giúp tính toán nhanh chóng các đặc trưng Haar-like
Hình chia nhỏ ở vị trí (x,y) bằng tổng các giá trị pixel phía bên trái của tọa độ (x,y) bao gồm:
P( x, y)
x ' x , y '
i( x' , y ' )
Trang 22Hình 2.2: Ảnh chia nhỏ tại tọa độ (x,y)
Tổng các giá trị pixel trong vùng “A”:
P1 = A1 ; P2 = A2 ; P3 = A1 + A3
P = A + A1 + A2 + A3 ; (2.2)
A = P + P1 – P2 – P3 ;
Hình 2.3: Tổng các giá trị pixel nằm trong vùng A
Để phát hiện ra xe hơi, ảnh đầu vào được phát hiện bằng một cửa sổ con có chứa đặc trưng Haar-like Dựa trên từng đặc trưng Haar-like f j , một bộ phân loại yếu h j ( x) được quy định như sau:
Trang 23hj (x) 1, i f pj f j (x) pj j (2.3)
0, o t h e r w i
2.2.2 Vùng đặc trưng và Số lượng đặc trưng
Mục đích chính của việc sử dụng các đặc trưng thay vì các giá trị pixel ban đầu như là một đại lượng đầu vào cho thuật toán học huấn luyện là nhằm giảm hoặc tăng sự sai khác lẫn nhau giữa các đối tượng trong cùng một lớp phân loại, từ đó làm cho quá trình phân loại được dễ dàng hơn Các đặc trưng thường để mã hóa các hiểu biết về miền quan tâm của đối tượng trong ảnh Tính phức tạp của việc đánh giá đặc trưng là rất quan trọng trong nhiệm vụ phát hiện đối tượng dựa trên hình dáng bên ngoài của đối tượng đó trong chuỗi ảnh ngõ vào của hệ thống
Các đặc trưng của các đối tượng được tính tại mỗi một vị trí và mỗi một tỉ lệ trong một thời gian không đổi
Giả thiết rằng, đơn vị cơ bản cho sự xuất hiện cơ bản của đối tượng xuất hiện trong ảnh có kích thước W H điểm ảnh Đồng thời cũng giả thiết rằng cách tính nhanh cho tổng các điểm ảnh cho mỗi một hình chữ nhật bên trong cửa sổ lớn (ảnh đầu vào) ở dạng là hình chữ nhật nằm ngang hoặc nằm nghiêng góc 45o là thông số
r x, y, w, h, với 0 x, x w W ; 0 y, y h H ; x, y 0 ; w, h 0 ;
2.4
0 o ,45 o Hai ví dụ cho hai trường hợp của hình chữ nhật được cho trong Hình
Trang 24Hình 2.4: Ví dụ về các tư thế của hình chữ nhật đặc trưng
Số lượng đặc trưng xuất phát từ mỗi mẫu là đủ lớn và khác nhau giữa mẫu này với mẫu khác và được tính theo công thức bên dưới
Nếu cho X W / w và Y H / h thì số lượng đặc trưng đối với kích thước
2.2.3 Thuật toán tăng tốc AdaBoost
AdaBoost (Adaptive Boost) là một thuật toán học mạnh, giúp đẩy nhanh việc tạo ra một bộ phân loại mạnh (strong classifier) bằng cách chọn các đặc trưng tốt trong một họ các bộ phân loại yếu (weak classifier - bộ phân loại yếu) và kết hợp chúng lại tuyến tính bằng cách sử dụng các trọng số (Hình 2.5) Điều này thật sự
Trang 25cải thiện dần độ chính xác nhờ áp dụng hiệu quả một chuỗi các bộ phân loại yếu [9,
trang 39 47]
Tập huấn luyện
Họ các bộ phân lớp yếu
AdaBoost
Bộ phân lớp mạnh
Các trọng số
Hình 2.5: Lược đồ cơ bản của AdaBoost
Thuật toán học này ban đầu duy trì một phân bố chuẩn (tương đồng nhau) các trọng số lên mỗi một mẫu huấn luyện Trong bước lặp đầu tiên, thuật toán huấn luyện một bộ phân loại yếu bằng cách dùng một đặc trưng Haar-like đã thực hiện tốt nhất việc phát hiện các mẫu thử huấn luyện Trong lần lặp thứ hai, các mẫu thử dùng cho huấn luyện nhưng bị phân loại nhầm bởi bộ phân loại yếu đầu tiên được nhận trọng số cao hơn sao cho đặc trưng Haar-like được chọn lần này phải tập trung khả năng tính toán cho các mẫu thử bị phân loại nhầm này Sự lặp lại tiếp tục thực hiện và các kết quả cuối cùng sẽ là một chuỗi cascade các kết hợp tuyến tính của các bộ phân loại yếu, tạo ra một bộ phân loại mạnh, giúp tạo được độ chính xác mong muốn Thuật toán học AdaBoost sau 3 lần lặp được minh họa trong Hình 2.6
là một ví dụ thuật toán AdaBoost sau ba lần lặp [11]
Trang 26Hình 2.6: Thuật toán học AdaBoost Phương pháp AdaBoost có nhiều dạng khác nhau [4, phần 3] :
Tăng tốc thích nghi rời rạc (Discrete AdaBoost – DAB)
Tăng tốc thích nghi thực (Real AdaBoost – RAB)
Tăng tốc thích nghi linh hoạt (Gentle AdaBoost – GAB)
Các phương pháp trên đều được dùng cho việc tính toán độ phức tạp từ các mẫu phân loại, nhưng khác nhau ở thuật toán học huấn luyện (Bảng 2.1)
Bảng 2.1: Các dạng thuật toán học huấn luyện AdaBoost
Trang 271 Ngõ vào: S = x1 , y1 , , x N , y N Số các bước lặp lại T
2 Khởi tạo: n (1) 1/ N cho tất cả n = 1, …, N
3 Do for t =1, …, T
(a) Huấn luyện bộ phân loại bằng bộ mẫu thử đã được đánh trọng số
với giả thiết:
Với Zt là hằng số chuẩn hóa, sao cho n 1 n 1
Ngừng lệnh if khi t = 0 hoặc khi
Discrete AdaBoost (Freund & Schpire)
1 N mẫu được cho x1 , y1 , , x N , y N với x k , y 1,1
Trang 28, c m log 1 err m / err m
Trang 29Hình 2.7: Mô hình minh họa tác vụ phát hiện vật thể dùng chuỗi cascade
Trong thực tế, chuỗi cascade các bộ phân loại được triển khai nhằm tăng tốc
độ thực thi của thuật toán phát hiện Trong giai đoạn đầu của quá trình huấn luyện, ngưỡng của bộ phân loại yếu được điều chỉnh đủ thấp sao cho xấp xỉ 100% các đối tượng đích có thể được dò ra trong khi vẫn giữ tỉ lệ nhận dạng sai mẫu không tích cực gần bằng zero Sự cân bằng của một ngưỡng thấp gắn liền với tỉ lệ phát hiện sai mẫu tích cực cao hơn Một mẫu tích cực ngõ ra từ bộ phân lớp đầu tiên là thông số đặt ngõ vào cho bộ phân lớp thứ hai, cũng sẽ được điều chỉnh sao cho đạt được tỉ lệ phát hiện rất cao Tương tự như thế, một mẫu tích cực xuất ra từ bộ phân lớp thứ hai lại tiếp tục là thông số đặt ngõ vào cho bộ phân lớp thứ ba, …[11]
Trang 30Các cửa sổ con là tích cực (phù hợp, dò đúng đối tượng) nếu được cho qua tại từng bộ phân lớp của chuỗi cascade đã được huấn luyện Nếu không, một ngõ ra trên chuỗi sẽ loại bất kì cửa sổ không phù hợp ngay lập tức (Hình 2.8); [9, trang 59] [10] ; [link 1]
Hình 2.8: Dùng chuỗi cascade đã được huấn luyện để phát hiện cửa sổ con phù hợp
Bằng cách sử dụng cấu trúc gồm các chuỗi cascade song song, tốc độ phát hiện đối tượng sẽ được cải thiện đáng kể (Hình 2.9) [link 1]
Trang 31i
Hình 2.9: Cấu trúc các chuỗi cascade song song
2.2.4 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 đượ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
Tác vụ học được dựa trên N mẫu huấn luyện x1 , y1 , , x N , y N với
2.2.5 Tầng phân loại (cascade)
Tầng (đợt) của bộ phân loại bao gồm các cây (tree) giá trị giảm dần sau mỗi giai đoạn (stage) mà bộ phân loại được huấn luyện để nhận dạng hầu hết các đối tượng vật thể mong muốn, đồng thời cũng loại bỏ các đối tượng không được huấn luyện 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 20 giai đoạn (stage) Đến giai đoạn cuối cùng, giá trị false alarm = 0.5 20 9.6 e 07
và độ trùng khít (hit rate) khoảng 0.995 20 0.9047 (Hình 2.10) [4, phần 4]
Trang 32h2
f3
Stage 3:
0.9 925 0.53
Trang 33Tại mỗi giai đoạn huấn luyện stage, bộ phân loại tạo ra thông số hit-rate h và
false-alarm rate f mới làm ngõ vào thông số đặt cho giai đoạn huấn luyện kế tiếp
sau
Ứng với mỗi giai đoạn được huấn luyện sử dụng một trong phương pháp tăng tốc Bộ tăng tốc có thể học huấn luyện bởi một một phân loại mạnh dựa trên một tập hợ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
Trang 342.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í dụ trường hợp đối tượng tiến đến gần camera) thì lượng ảnh chia nhỏ tăng nhiều hơn để chứa các đặc trưng
2.2.6.2 Thuật toán
Thuật toán phát hiện đối tượng, đồng thời co giãn vùng cửa sổ đặc trưng sao cho luôn bám theo đối tượng được viết trong Bảng 2.2
Trang 35Bảng 2.2: Thuật toán phát hiện đồng thời co giãn vùng đặc trưng đối tượng [3, trang
11]
window_size = window_size 0
scale = 1
objects = {}
while (window_size ≤ image_size) do
classifier_cascade = classifier_cascade 0 × scale
dX = scale
dY = scale
for (0 ≤ Y ≤ image_height – window_height) do
for (0 ≤ X ≤ image_height – window_height) do
region_to_test = { 0 ≤ x ≤ X + window_width ;
0 ≤ y ≤ Y + window_width }
if (classifier_cascade(region_to_test) = 1) then objects = objects {region_to_test}
Trang 36CHƯƠNG 3
XÂY DỰNG HỆ THỐNG
3.1 Ý TƯỞNG XÂY DỰNG VÀ HOẠT ĐỘNG CỦA HỆ THỐNG
Từ yêu cầu đặt ra của luận văn, học viên đề xuất và thực hiện hệ thống:
Một card thu hình nhận tín hiệu video trực tuyến từ camera (hoặc nhập một file video) và gửi nó đến máy tính có phần mềm phát hiện và nhận dạng xe được viết bằng ngôn ngữ lập trình thích hợp Trong trường hợp không thể cho hệ thống thực hiện tại thực địa cảnh quang giao thông thì có thể quay video lại cảnh quang giao thông cho máy tính xử lý
Sau thời gian tính toán, máy tính sẽ tiến hành phát hiện và nhận dạng xe xuất hiện trong chuỗi hình ảnh và tiến hành khoanh vùng có chứa đặc trưng xe
Trong quá trình nghiên cứu, học viên đã tích hợp thêm thuật toán ước lượng khoảng cách từ camera đến xe, đếm phân loại các xe,… từ đó người khảo sát
có thể tính toán các thông số liên quan đến xe hoặc cảnh quang giao thông
3.2 TIẾN HÀNH XÂY DỰNG CƠ SỞ DỮ LIỆU ẢNH XE
3.2.1 Xây dựng cơ sở dữ liệu
Trang 37 Flickr của Yahoo!
Photobucket.com (trang web chia sẻ ảnh)
Nguồn ảnh chia sẻ từ các kho ảnh của các trường đại học trên thế giới (MIT, UIUC, Carnagie Mellon,…)
Ảnh do học viên chụp từ thực địa cảnh quang giao thông (chiếm phần lớn)
Việc sưu tầm và tìm kiếm ảnh mẫu phục vụ cho công tác học huấn luyện cho máy tính đòi hỏi tiêu tốn nhiều thời gian Các mẫu hình ảnh xe được tìm kiếm và sưu tầm đòi hỏi có sự đồng nhất về tư thế chụp lấy mẫu và các kiểu dáng không quá khác biệt, cũng như hình dáng không quá giống so với các mẫu xe còn lại Các xe được chọn làm ảnh mẫu học huấn luyện phải có vị trí rõ ràng trong ảnh, không bị
che khuất (nếu bị che ít hơn 1
4 diện tích pixel cũng tạm chấp nhận) và có tư thế đối xứng, nghĩa là không quá nghiêng theo các hướng x, y, z (110% đối với hướng
x và y; 50% đối với hướng z)
Các ảnh không tích cực (không chứa hình đối tượng) được học viên lấy từ nguồn dữ liệu có sẵn với các dạng hình phong cảnh thiên nhiên, hình chân dung, động thực vật, nội thất, kiến trúc,…
Trang 383.2.1.2 Phân loại bằng tay cơ sở dữ liệu hình
Các ảnh sau khi được thu thập, sau đó được học viên phân loại riêng biệt theo từng hình dáng khác nhau của xe (xe hơi du lịch cá nhân, xe buýt, xe tải,…)
Với mỗi cơ sở dữ liệu được tạo thành, học viên đã sử dụng hơn 550 hình tích cực (hình có chứa đối tượng - positive image) và 6.000 hình không tích cực (không chứa đối tượng - negative image) dùng cho huấn luyện
Trong luận văn, các loại xe được phân nhóm tùy theo đặc trưng về hình dáng cấu trúc bên ngoài và chức năng sử dụng như đã nói ở trên Các nhóm hình sau khi phân biệt được đặt riêng rẽ nhằm tạo thuận lợi cho việc huấn luyện xe trên cơ sở các mẫu phân loại này
Mẫu hình huấn luyện tiêu biểu cho từng nhóm phân loại xe trình bày trong
Bảng 3.1:
Bảng 3.1a: Mẫu xe hơi du lịch cá nhân
Bảng 3.1b: Mẫu xe buýt
Trang 39Bảng 3.1c: Mẫu xe tải
Các ảnh không tích cực, không chứa đối tượng (negative image) được sưu tầm dễ dàng từ các nguồn ảnh có sẵn
3.2.1.3 Tiến hành lấy mẫu, tạo bộ cơ sở dữ liệu huấn luyện
Trong công cụ huấn luyện OpenCV 1.0 của Intel có sẵn lệnh Objectmarker
Lệnh này dùng để đánh dấu vùng có chứa đặc trưng của đối tượng có trong ảnh bằng cách dùng hình chữ nhật để đánh dấu khoanh vùng chứa đặc trưng (Hình 3.1)
Trang 40Hình 3.1: Minh họa quá trình lấy mẫu
Đường bao chữ nhật màu tím đánh dấu vùng đặc trưng đối tượng cần huấn luyện
3.2.1.4 Tiến hành học huấn luyện cho máy tính
Cũng sử dụng công cụ đã nói ở trên, sử dụng lệnh Createsamples và
Haartrainning để huấn luyện tạo cơ sở dữ liệu đặc trưng và xuất cơ sở dữ liệu đó
ra dạng file xml phục vụ trong mã lệnh chương trình phần mềm nhận dạng của luận
văn
Hai lệnh chuẩn, điển hình được học viên thực hiện trong luận văn:
Tạo file học vector “vector.vec ” dùng lệnh: