Hình 4.21:Giá tr ị pixel của điểm ảnh thực trên tấm chessboard được trích xuất từ ảnh ch ụp Hình 4.22: K ết quả tính toán giá trị tọa dộ pixel của điểm khi biết thông số nội và tọa độ đ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA -o0o -
VĂN TẤN THẮNG
Chuyên ngành: Kỹ thuật Cơ Điện Tử
Mã số : 605268
LU ẬN VĂN THẠC SĨ
Tp HCM, Tháng 12/2013
Trang 2Cán bộ hướng dẫn khoa học: TS ĐOÀN THẾ THẢO
Ký tên TS.ĐOÀN THẾ THẢO Cán bộ chấm nhận xét 1:
Ký tên Cán bộ chấm nhận xét 2:
Ký tên
Trang 3Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
1
2
3
4
5
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
CH Ủ TỊCH HỘI ĐỒNG TRƯỞNG KHOA CƠ KHÍ
PGS.TS NGUYỄN HỮU LỘC
Trang 4NHI ỆM VỤ LUẬN VĂN THẠC SĨ
Ngày, tháng, năm sinh: 15/10/1985 Nơi sinh: PHÚ YÊN
Chuyên ngành: Kỹ thuật Cơ Điện Tử Mã số: 605268
I TÊN ĐỀ TÀI:
II NHI ỆM VỤ VÀ NỘI DUNG:
• Nghiên cứu một số thuật toán sử dụng 2 cameras để theo vết, xác định hướng và khoảng cách đến vật thể
• Nghiên cứu phương pháp xác định các điểm đặc trưng trên xe và nhận ra được xe ô tô
• Hiện thực hệ thống nhận ra được xe, theo vết và xác định được khoảng cách
và hướng đến xe nhằm đưa ra cảnh báo cho tài xế
• Làm thực nghiệm kiểm nghiệm kết quả thực tế
III NGÀY GIAO NHI ỆM VỤ: Ngày 02 tháng 07 năm 2012
IV NGÀY HOÀN THÀNH NHI ỆM VỤ: Ngày 22 tháng 11 năm 2013
V CÁN B Ộ HƯỚNG DẪN: TS Đoàn Thế Thảo
Tp HCM, ngày…….tháng…… năm 2013
CÁN B Ộ HƯỚNG DẪN CH Ủ NHIỆM BỘ MÔN ĐÀO TẠO
TR ƯỞNG KHOA CƠ KHÍ
PGS.TS Nguyễn Hữu Lộc
Trang 5Tôi cam đoan rằng nội dung và kết quả đạt được trong luận văn là công trình làm việc
của Tôi dưới sự hướng dẫn của Thầy TS Đoàn Thế Thảo, ngoại trừ các phần tham
khảo từ các nguồn tài liệu khác được ghi rõ trong luận văn
Tp.HCM, Ngày 02 tháng 12 năm 2013
Văn Tấn Thắng
Trang 6Tôi xin chân thành cảm ơn Khoa Cơ Khí, Bộ Môn Cơ Điện Tử, Trường Đại Học Bách Khoa, ĐHQG-Tp.HCM đã tạo điều kiện tốt cho tôi thực hiện đề tài này
Tôi xin chân thành cảm ơn rất nhiều đến Thầy TS Đoàn Thế Thảo đã tận tình hướng
dẫn, chỉ bảo Tôi rất nhiều về phương pháp nghiên cứu, hướng tiếp cận tốt về đề tài, và cung cấp nhiều tài liệu bổ ích, trong suốt thời gian thực hiện đề tài
Tôi xin gửi lòng biết ơn sâu sắc đến Ba, Mẹ, các anh chị và bạn bè đã ủng hộ, giúp đỡ
và động viên Tôi trong suốt thời gian nghiên cứu thực hiện đề tài
Mặc dù tôi đã c ố gắng hoàn thành đề tài trong phạm vi và khả năng cho phép, nhưng
chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thông và tận tình
chỉ bảo của quý Thầy Cô và các bạn
Sau cùng, Tôi xin 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è
TPHCM, ngày 02 tháng 12 năm 2013
Văn Tấn Thắng
Trang 71.1 Đặt vấn đề 1
1.2 Tính c ấp thiết của đề tài 1
1.3 M ục tiêu nghiên cứu 2
1.4 Đối tượng và phạm vi nghiên cứu 2
1.4.1 Đối tượng nghiên cứu 2
1.4.2 Ph ạm vi nghiên cứu 2
1.5 Phương pháp nghiên cứu 2
1.6 Ý ngh ĩa khoa học và thực tiễn 3
1.6.1 Ý ngh ĩa khoa học 3
1.6.2 Ý ngh ĩa Thực tiễn 4
CHƯƠNG 2 2.1 T ổng quan về OpenCV 5
2.2 Gi ải pháp phần cứng phục vụ thực hiện đề tài 6
2.2.1 Main công nghi ệp, PC 104 6
2.2.2 Single Board Computer (SBC) s ử dụng Single on Chip (SoC) 7
2.2.3 Máy tính PC, Laptop 8
CHƯƠNG 3 3.1 C ấu trúc tổng quan về đề tài 11
3.2 Cơ sở lý thuyết 13
3.2.1 Các phương pháp phát hiện đối tượng xe ôtô 13
3.2.2 Mô hình camera 25
3.2.3 Gi ới thiệu các thuật toán phát hiện điểm quan tâm thuộc đối tượng 29
3.2.3.1 Gi ới thiệu chung 29
3.2.3.2 Lý thuy ết về thuật toán SURF 32
CHƯƠNG 4 4.1 Đồ gá hai camera 46
Trang 84.2.2 Ti ến hành học huấn luyện cho máy tính 53
4.2.3 Thu ật toán phát hiện xe 60
4.2.4 K ết quả thực nghiệm phát hiện đối tượng 60
4.3 Th ực hiện hiệu chỉnh camera và kiểm tra kết quả các thông số nhận được 62
4.3.1 Th ực hiện hiệu chỉnh camera 62
4.3.2 Cách ki ểm nghiệm kết quả thông số nội nhận được 64
4.4 K ết quả phát hiện điểm và khớp ảnh từ thuật toán SURF 67
4.4.1 Ảnh chụp từ hai camera 67
4.4.2 K ết quả phát hiện, gán hướng cho điểm ảnh từ thuật toán SURF 67
4.4.3 K ết quả khi khớp các điểm ảnh tương ứng với nhau trong thuật toán SURF 68
4.5 K ết quả thực nghiệm ứng dụng hình học Epipolar Constraint 68
4.6 K ết quả đo khoảng cách của đối tượng 69
CHƯƠNG 5 5.1 Đánh giá kết quả đạt được 70
5.2 K ết luận và hướng phát triển 72
5.2.1 K ết luận 72
5.2.2 Ph ạm vi ứng dụng 74
5.3 H ạn chế của đề tài 74
5.4 Hướng phát triển cho đề tài 74
Tài li ệu tham khảo 76
Trang 9
Hình 2.2: Mainboard pc- 104, kích thước 90.17mm x 95.89mm [1]
Hình 2.3: Mainboard SBC uDimm, Kích th ước 43.18 x 68.58 mm [1]
Hình 2.4: Hình ảnh 2 webcam của hãng Logitech độ phân giải 1280 x 720
Hình 2.5: Hình ảnh phần cứng gồm cơ cấu gán hai webcam Logitech và Laptop thực
hi ện đề tài
Hình 3.1: Hình ảnh minh họa về hệ trục tọa độ của hai camera gắn lên xe ôtô [9]
Hình 3.2: S ơ đồ cấu trúc tổng quát về các bước thực hiện trong đề tài
Hình 3.3: Các đặc trưng cạnh của đặc trưng Haar-like [4]
Hình 3.4: Các đặc trưng đường của đặc trưng Haar-like [4]
Hình 3.5: Các đặc trưng đường chéo và bao quanh tâm của đặc trưng Haar-like [4]
Hình 3.6: L ược đồ cơ bản của thuật toán AdaBoost [6]
Hình 3.7: Dùng chu ỗi cascade đã được huấn luyện để phát hiện đối tượng [4]
Hình 3.8: C ấu trúc của các chuỗi cascade nối tiếp với N giai đoạn học huấn luyện [4] Hình 3.9: Mô hình Pinhole [7]
Hình 3.10: Chuy ển mặt phẳng ảnh tới trước mặt phẳng tiêu cự [7]
Hình 3.11: Chuy ển hệ trục tọa độ của đối tượng ở hệ tọa độ thực tới hệ tọa độ camera qua ma tr ận R và T [7]
Hình 3.12: Hình mô quan h ệ giữa hệ trục tọa độ ảnh thực tế so với lý thuyết
Hình 3.12: Các kernel ước lượng đạo hàm riêng theo các hướng x,y
Hình 3.13: Ảnh minh họa, các điểm được phát hiện và gán hướng bởi thuật toán SURF [12]
Hình 3.14: Nguyên t ắc so khớp ảnh [2]
Hình 3.15: Hình ảnh minh họa cho các điểm được khớp trong thuật toán SURF[12]
Trang 10Hình 3.18: Mô t ả ý nghĩa của ma trận E và F [8]
Hình 3.19: Tính toán kho ảng cách đối tượng từ phương pháp Triangulation[9]
Hình 3.20: Hình ảnh minh họa về hệ trục tọa độ của hai camera gắn lên xe ôtô [9]
Hình 4.1: Hình ảnh minh họa các chiều di chuyển của hệ thống camera
Hình 4.2: B ản vẽ các hình cắt đồ gá camera
Hình 4.3: Các b ản vẽ chi tiết 2D và phối 3D của các thành phần của đồ gá
Hình 4.4: B ản vẽ mô phỏng các chi tiết của đồ gá
Hình 4.5: B ản vẽ phối cảnh hình ảnh 3D của đồ gá
Hình 4.6: C ơ cấu đồ gá chế tạo thực tế
Hình 4.7: Hình ảnh đặc trưng cho tập dữ liệu thu thập các hình ảnh xe ôtô cần phát hiện Hình 4.8: Hình ảnh đặc trưng cho tập không chứa đối tượng cần phát hiện
Hình 4.9: C ấu trúc thư mục chứa các file và folder cần thiết trong huấn luyện
Hình 4.10: File mô t ả thông tin các mẫu ảnh không chứa đối tượng
Hình 4.11: File mô t ả thông tin của các mẫu ảnh chứa đối tượng
Hình 4.12: File ứng dụng để tổng hợp các mẫu chứa đối tượng vào file vector.vec
Hình 4.13: K ết quả file chạy ứng dụng để tổng hợp các mẫu chứa đối tượng vào file vector.vec
Hình 4.14: C ấu trúc của file ứng dụng chạy huấn luyện
Hình 4.15: K ết quả file chạy huấn luyện ở một giai đoạn
Hình 4.16: Ảnh diễn tả bộ nhớ RAM được chiếm dụng trong quá trình chạy huấn luyện Hình 4.17: Ảnh kết quả phát hiện xe ôtô bằng file cascade.xml được huấn luyện
Hình 4.18: Hình ảnh chessboard dùng trong hiệu chỉnh camera
Trang 11Hình 4.21:Giá tr ị pixel của điểm ảnh thực trên tấm chessboard được trích xuất từ ảnh
ch ụp
Hình 4.22: K ết quả tính toán giá trị tọa dộ pixel của điểm khi biết thông số nội và tọa độ điểm thực đó xét trong hệ tọa độ camera
Hình 4.23: K ết quả tính toán kiểm tra tọa độ điểm thực xét trong hệ tọa độ camera khi
bi ết thông số nội và tọa độ pixel điểm ảnh của ảnh được chụp từ điểm thực trên
Hình 4.24: Hình ảnh chụp được từ hai camera trái và phải
Hình 4.25: Hình ảnh phát hiện điểm và gán hướng bằng phương pháp SURF
Hình 4.26: Hình ảnh so khớp các điểm ảnh phát hiện bởi thuật toán SURF
Hình 4.27: Các điểm ảnh tương ứng nằm trên các đường epipolar
Hình 5.1: Hình ảnh của đối tượng xe ôtô cần phát hiện và xác định khoảng cách
Hình 5.2: Hình ảnh kết quả phát hiện đối tượng và kết quả khoảng cách đo được
Hình 5.3: Bi ểu đồ đánh giá kết quả đạt được
Trang 12speed, there are many applications based on the high technology in the other fileds that are applied to support, help human in all aspect of life, makes better value of life quality days by days
We can give a typical example about applications in field of the computer vision One of the most noticeable application fields is medical image processing used a medical diagnosis of a patient by track by the extraction of information from X-ray image data, or applications is in industry, where information is extracted with purpose used to support a manufacturing process…, and still remains many application in others field
In this thesis, student wants to implement a application that relates to the computer vision field, issue named “Using stereo camera system detects and measures distance of object
to support driver when car is joining traffic” with instruction of Doctor Doan The Thao, avoid happening any risks, accidents This is one of the most useful applications and objects that is researched and approached by many scientists who are working in the computer vision fields and image processing because of demands in real lives and many different methods of approach
In this thesis, student has the method of approach, as follows:
A detector based on Haar-like features and AdaBoost algorithm is used to detect object, then result is applied for distance detection process using triangulation method In addition, there are some auxiliary matters such as: detected key points on object (SURF algorithm), matched these points (epipolar constraint) then extracted the distance information of object from this good mactching points…,
Trang 13độ rất cao, có nhiều ứng dụng khoa học kỹ thuật công nghệ trong các lĩnh vực khác nhau được phát triển và làm ra nhằm mục đích hỗ trợ và giúp đỡ con người trong đời sống, nâng cao chất lượng cuộc sống của chúng ta ngày một tốt hơn
Ta lấy các ứng dụng được tạo ra từ lĩnh vực thị giác máy tính làm ví dụ điển hình, một trong các ứng dụng đáng chú ý nhất của nó là sử dụng trong việc trích xuất các thông tin trong các ảnh được chụp bởi tia X-Quang dùng cho việc chẩn đoán bệnh của bệnh nhân
một cách tốt hơn, hay những ứng dụng phục vụ trong sản xuất công nghiệp tự động…ngoài ra còn rất nhiều ứng dụng về lĩnh vực thị giác máy tính trong nhiều ngành nghề khác
Trong luận văn này, học viên muốn thực hiện một ứng dụng liên quan tới thị giác máy tính Tên đề tài: “THIẾT KẾ HỆ THỐNG CẢNH BÁO, TRỢ GIÚP TÀI XẾ LÁI XE Ô
TÔ” dưới sự hướng dẫn của Thầy TS Đoàn Thế Thảo Đây là một trong những chủ đề và ứng dụng được nhiều nhà khoa học làm trong lĩnh v ực thị giác máy tính và xử lý ảnh nghiên cứu, bởi vì nhu cầu được sử dụng trong đời sống thực và có nhiều cách tiếp cận
vấn đề khác nhau Hướng tiếp cận của học viên trong luận văn này như sau:
Phát hiện đối tượng với những bộ phân loại được tăng tốc bằng thuật toán AdaBoost và đặc trưng Haar-like (Haar-like features), sau khi huấn luyện dùng file huấn luyện xml để
phục vụ cho mục đích phát hiện đối tượng Lấy điểm đặc trưng là cặp điểm ảnh được
khớp tốt từ hai mặt phẳng ảnh của một cùng điểm thực nằm trên đối tượng, rồi xác định thông tin là khoảng cách bằng phương pháp hình học Triangulation (Phương pháp tam giác), ngoài ra còn có những vấn đề phụ trong đề tài như phát hiện điểm đặc trưng và
khớp ảnh bằng thuật toán SURF, dùng ràng buộc Epipolar để có được cặp điểm khớp ảnh
tốt…
N ỘI DUNG LUẬN VĂN
CHƯƠNG 1: MỞ ĐẦU
CHƯƠNG 2: CÔNG CỤ HỖ TRỢ VÀ PHẦN CỨNG
CHƯƠNG 3: TỔNG QUAN VỀ ĐỀ TÀI VÀ CƠ SỞ LÝ THUYẾT
CHƯƠNG 4: THIẾT KẾ ĐỒ GÁ CAMERA VÀ XÂY DỰNG MÔ HÌNH
CHƯƠNG 5: ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN
Trang 14những hành trình dài dễ khiến người cầm lái trở nên mệt mỏi, xao nhãng vài ba giây và
nếu có đối tượng nào đó phía trước xe trong khi người lái mất tập trung thì có thể xảy ra
va chạm trong tích tắc Đó là một trong những ứng dụng cho việc đo khoảng cách của đối tượng bằng hệ thống stereo camera, và nó làm tiền đề cho những ứng dụng thực tế sau
này
1.2 Tính c ấp thiết của đề tài
Với việc phát triển của nền kinh tế, nhu cầu bảo vệ con người và tài sản càng trở nên cấp thiết Cùng với sự phát triển vượt bậc của công nghệ, những hệ thống cảnh báo cho tài xế
giờ đây được hiểu như là một nhu cầu cho sự an toàn khi tham gia giao thông Nhằm
giảm thiểu số vụ va chạm giao thông kiểu này, một số nhà sản xuất ô tô đã giới thiệu các công nghệ cảnh báo có vật cản trước cho người lái chẳng hạn như: dùng cảm biến hồng ngoại, tia lazer,…
Giải pháp dùng “hệ thống stereo camera” để phát hiện đối tượng vật cản, sẽ giúp cho
người lái không chỉ thuận tiện trong việc giám sát được tình hình giao thông khi đang điều khiển phương tiện, phát hiện và cảnh báo kịp thời khi người lái mất tập trung, do đó
bảo vệ được tính mạng và tài sản Giải pháp này sẽ giúp người lái xe ô tô có được một công cụ giám sát và cảnh báo hiệu quả hơn so với hệ thống cảnh báo khác
Trang 15Do đó là lý do Tôi chọn nghiên cứu và thực hiện đề tài: " THI ẾT KẾ HỆ THỐNG
C ẢNH BÁO, TRỢ GIÚP TÀI XẾ LÁI XE Ô TÔ " dưới sự hướng dẫn của Thầy
TS Đoàn Thế Thảo
1.3 M ục tiêu nghiên cứu
Thiết kế hệ thống cảnh báo, trợ giúp tài xế lái xe ô tô bằng cách sử dụng hệ thống stereo camera, thu thập và xử lý nhiệm vụ trên nền tảng của hệ điều hành Windows của hãng Micosoft và phần cứng là máy Laptop với chíp xử lý Core i3 của hãng Intel, Ram 2 GB,
bộ nhớ ngoài với dung lượng 500 GB (gigabyte), nhằm phát hiện vật cản trước đầu xe
Đề tài nghiên cứu thuật toán phát hiện và thuật toán tính khoảng cách tới các đối tượng chuyển động từ hệ thống stereo camera
1.4 Đối tượng và phạm vi nghiên cứu
1.4.1 Đối tượng nghiên cứu
Phát hiện vật cản là các xe ôtô ở phía trước người lái được hỗ trợ hệ thống stereo camera, thu ảnh vật cản bằng 2 webcam với độ phân giải HD (high definition) 720p (pixel) của
hãng Logitech, xử lý thao tác cảnh báo trên nền tảng hệ điều hành Windows của hãng Microsoft
1.4.2 Ph ạm vi nghiên cứu
Nghiên cứu thuật toán phát hiện đối tượng chuyển động, và đối tượng tĩnh rồi xác định được khoảng cách của đối tượng trong phạm vi đưa ra
1.5 Phương pháp nghiên cứu
Để hệ thống stereo camera có thể làm việc đúng như yêu cầu là phát hiện vật cản và đưa
ra cảnh báo cho tài xế, khi vật cản ở trong khoảng cách báo động (khoảng cách có thể gây
va chạm nếu tài xế không kịp đưa ra xử lý an toàn) thì cần nghiên cứu các vấn đề sau:
- Ngiên cứu về thư viện OpenCV hỗ trợ trong thị giác máy tính
Trang 16- Dùng kỹ thuật hiệu chỉnh camera (camera calibration) để tìm ra các thông số ngoại
và nội của camera, vì những thông số camera cần thiết cho việc tính toán khoảng cách từ camera so với vật trong không gian thực 3D
- Phát hiện đối tượng với những bộ phân loại được tăng tốc bằng thuật toán AdaBoost và đặc trưng Haar-like (Haar-like features), sau khi huấn luyện dùng file
huấn luyện xml để phục vụ cho mục đích phát hiện đối tượng
- Nghiên cứu các kỹ thuật để phát hiện các điểm trên đối tượng
- Tiến hành khớp ảnh cho các điểm tương ứng được phát hiện từ kỹ thuật phát hiện các điểm trên đối tượng
- Để nhận được cặp điểm ảnh khớp tốt, ta cần loại bỏ những cặp điểm ảnh khớp ảnh không tốt bằng cách sử dụng phương pháp Epipolar Constraint
- Lấy điểm đặc trưng là cặp điểm ảnh được khớp tốt từ hai mặt phẳng ảnh của một cùng điểm thực nằm trên đối tượng, rồi xác định thông tin là khoảng cách bằng phương pháp hình học Triangulation (Phương pháp tam giác)
- Thiết kế cơ khí cho đồ gá của hai camera phục vụ cho nghiên cứu, cơ cấu gá có
thể điều chỉnh được vị trí tương đối giữa hai camera
1.6 Ý ngh ĩa khoa học và thực tiễn
1.6.1 Ý ngh ĩa khoa học
Kết quả nghiên cứu có thể làm tài liệu thao khảo cho việc tìm hiểu thuật toán phát hiện,
và xác định được khoảng cách của đối tượng trong không gian thực ba chiều (3D) Ứng
dụng thị giác máy tính vào đời sống thực tế
Tiền đề cho những nghiên cứu hay hơn và kỹ thuật hay hơn cho các đề tài tiếp theo trong tương lai
Trang 171.6.2 Ý ngh ĩa Thực tiễn
Giao thông vận tải: hệ thống phát hiện vật cản, đi sai làn đường…, bằng camera và đưa ra
cảnh báo cần thiết để tránh tai nạn không mong muốn xảy ra
Công nghiệp sản xuất tự động hay trong ứng dụng cho robot trong các tác vụ cụ thể liên quan đến phát hiện và xác định khoảng cách
Trong y tế: đã có đề tài nghiên cứu về hành vi uống thuốc của bệnh nhân, hành vi ăn tối
của người lớn tuổi để đưa ra thông báo đúng cho nhân viên y tế…
Trang 18Intel đưa ra phiên bản OpenCV đầu tiên vào năm 1999 Ban đầu nó yêu cầu phải có thư
viện xử lý ảnh của Intel Sau đó vì sự lệ thuộc này mà họ đã phải gỡ bỏ và bây giờ chúng
ta có thể sử dụng thư viện này hoàn toàn độc lập
OpenCV là một thư viện nguồn mở hỗ trợ cho thị giác máy tính Nó có nhiều tác dụng và
rất đa dạng như : nhận dạng, dò tìm, phát hiện, lọc Kalman,…, thể hiện sự đa dạng của trí
tuệ nhân tạo (Artificial Intelligence) Thêm vào đó nó cải thiện rất nhiều các thuật toán cơ
bản của thị giác máy tính và hỗ trợ rất nhiều hệ điều hành như: Windows, Linux, MacOSX
Cấu trúc tổng quan của OpenCV bao gồm 5 phần chính 4 trong 5 phần đó được chỉ ra trong hình vẽ dưới:
ấu trúc cơ bản của OpenCV
thống kê
HighGUI
Các hàm và thủ tục làm việc với file ảnh
và file video
Trang 19Phần CV bao gồm các thư viện cơ bản về xử lý ảnh và các giải thuật về thị giác máy tính MLL là bộ thư viện về các thuật toán học máy, bao gồm rất nhiều bộ phân cụm và phân
loại thống kê HighGUI chứa đựng những thủ tục vào ra, các chức năng về lưu trữ cũng như đọc các file ảnh và video Phần thứ 4, CXcore chứa đựng các cấu trúc dữ liệu cơ bản ( ví dụ như cấu trúc XML, các cây dữ liệu …) Phần cuối cùng là CvAux, phần này bao
gồm các thư viện cho việc phát hiện, theo dõi và nhận dạng đối tượng (khuôn mặt, mắt
…)
2.2 Gi ải pháp phần cứng phục vụ thực hiện đề tài
Để giải bài toán xử lý bằng hình ảnh, ta có rất nhiều giái pháp phần cứng khác nhau Từ
phần cứng cho tới các module phần mềm Ta có thể điểm qua một vài phương pháp hay được sử dụng và có hiệu quả cao như sau
2.2.1 Main công nghi ệp, PC 104
Hình 2.2: Mainboard pc- 104, kích thước 90.17mm x 95.89mm [1]
Ta có thể sử dụng mainboard PC104 với các chức năng như một máy tính thông
thường Việc sử dụng PC104 sẽ có những ưu, nhược điểm sau:
Ưu điểm:
- Có tốc độ xử lý cao
- Dễ dàng lập trình, kiểm lỗi
Trang 20- Hệ điều hành quen thuộc (Windows/linux)
- Các công cụ lập trình/bi ên dịch phổ biến MSVC (Microsoft Visual C++), gcc (GNU Compiler Collection)
Nhược điểm:
- Kích thước lớn
- Có quá nhiều thành phần không sử dụng đến
- Giá thành đắt
- Chỉ có thể giao tiếp với ngoại vi thông qua các chuẩn phổ biến như UART, USB
2.2.2 Single Board Computer (SBC) s ử dụng Single on Chip (SoC)
Hình 2.3: Mainboard SBC uDimm, Kích thước 43.18 x 68.58 mm [1]
SBC (Single board computer) có sử dụng các SoC là buớc tiến lớn trong việc xây dựng thiết bị với khả năng tính toán và xử lý như một máy tính thông thường.Với nhiều ưu điểm hơn hẳn so với các thiết bị khác như :
- Kích cỡ
- Giá thành
- Sử dụng các SoC làm bộ xử lý trung tâm có khả năng chuyên biệt về xử lý hình ảnh hay xử lý trên môi trường mạng rất hữu hiệu
Trang 21Do vậy tuỳ và bài toán đặt ra mà ta có thể chọn các SBC cho các SoC phù hợp với yêu
cầu cụ thể Hiện nay đã có nhiều SoC có khả năng tích hợp các DSP (Processor DigitalSignal Processing) là bộ xử lí tín hiệu số vào trong nhân nhằm tăng khả năng xử lý
Việc sử dụng mạch SBC sẽ có những ưu, nhược điểm sau:
- Các công cụ biên dịch phổ biến gcc
- Các công cụ hỗ trợ lập trình rất nhiều Eclipse, Vim, Emacs v v
Nhược điểm:
- Việc chạy, kiểm thử phải thực hiện giả lập trên máy tính trước khi đưa vào mạch
- Am hiểu kiến thức về các giao tiếp ngoại vi, kiến trúc về SBC
2.2.3 Máy tính PC, Laptop
Đây là một trong những phương pháp đơn giản nhất Có thể tận dụng các mainboard máy tính hay thậm chí các máy tính xách tay với chức năng là một đơn vị xử lý ảnh, và đưa ra quyết định Với việc kết nối camera hay webcam ta hoàn toàn chủ động trong quá trình
nhận và xử lý ảnh Các giao tiếp ngoại vi phổ biến như UART, Parallel, USB hay Keyboard Việc sử dụng PC, Laptop sẽ có những ưu, nhược điểm như sau:
Trang 22- Hệ điều hành quen thuộc (Hệ điều hành Windows của hãng Microsoft)
- Các công cụ lập trình và biên dịch phổ biến (C, C++, Visual C, Visual Basic…)
- Bộ nhớ ngoài lớn
Nhược điểm:
- Kích thước, khối lượng lớn
- Dễ hư hỏng do va đập hay các tác nhân khác
- Có quá nhiều thành phần không sử dụng đến
- Chỉ có thể giao tiếp với ngoại vi thông qua các chuẩn phổ biến như UART, USB
Phương pháp phần cứng học viên chọn trong đề tài này là sử dụng Laptop/PC để
thực hiện vì tính tiện lợi và dễ dàng thực hiện công việc cho đề tài và phần chụp ảnh học viên chọn hai webcam của hãng logitech: giao tiếp với Laptop bằng chuẩn giao tiếp USB, có độ phân giải màn hình 1280x720
Trang 23Hình 2.4: Hình ảnh 2 webcam của hãng Logitech độ phân giải 1280 x720
Hình 2.5: Hình ảnh phần cứng gồm cơ cấu gán hai webcam Logitech và Laptop thực hiện đề tài
Trang 24CHƯƠNG 3
Tóm t ắt chương
N ội dung: Chương này giới thiệu cấu trúc tổng quan về và các bước thực hiện đề tài,
cơ sở lý thuyết của các bước thực hiện: phần phát hiện đối tượng bằng các đặc trưng Haar-like k ết hợp với thuật toán tăng tốc AdapBoost để phát hiện đối tượng nhanh hơn, sau đó dùng phương pháp để tìm điểm thuộc đối tượng trong vùng ảnh phát hiện đối tượng (ROI) bằng phương pháp SURF và tiến hành khớp ảnh các cặp điểm tương ứng
c ủa một điểm thực trong không gian thực được chụp từ hai camera, để nhận được cặp điểm ảnh tương ứng của điểm thực từ đối tượng trong không gian thực , ta dùng ràng
bu ộc epipolar để đạt được điều này, sau đó lấy cặp điểm được khớp đúng này làm điểm đặc trưng cho đối tượng, và trích ra thông tin là khoảng cách đối tượng trong không gian
th ực so với camera bằng phương pháp tam giác triangulation
3.1 C ấu trúc tổng quan về đề tài
Hình 3.1: Hình ảnh minh họa về hệ trục tọa độ của hai camera gắn lên xe ôtô [9]
Trang 25Hình 3.2: S ơ đồ cấu trúc tổng quát về các bước thực hiện trong đề tài
Tìm điểm trên vùng ROI nhận
diện xe bằng phương pháp Surf
Tìm điểm trên vùng ROI nhận
diện xe bằng phương pháp Surf
Haar-tốc AdaBoost
Tiến hành
khớp các cặp điểm tương ứng
Từ những cặp điểm
khớp chính xác, xác định được các điểm
thật làm điểm đặc trưng cho đối tượng trong không gian 3D
Sử dụng Epipolar Constraint để đạt được các cặp điểm khớp chính
xác
Trích xuất thông tin đối tượng
Haar-tốc AdaBoost
Ảnh camera
phải
ROI
Trang 263.2 Cơ sở lý thuyết
3.2.1 Các phương pháp phát hiện đối tượng xe ôtô
Phát hiện đối tượng, ví dụ như xe hơi trong cảnh quan giao thông, 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ó nhiều 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
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 hơi Đinh vị xe trong một cảnh quan giao thông là phương pháp tương đối đơn giản, bởi vì nó chỉ xác
định vị trí hay tọa độ của chiếc xe có trong ảnh Hướng phát triển hơn là việc 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 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 Trong bài luận văn này học viên chỉ tìm hiểu về việc phát hiện xe trong thực tế
Có hai hướng tiếp cận chính thường được dùng để phát hiện đối tượng: 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ê như sau:
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 thiết 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 và không chứa đối tượng
Trang 27Do 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ự khác 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 mạng 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 Windows (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 sample - ảnh có chứa đối tượng) và một tập dữ
liệu không tích cực (negetive sample - ả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 là đòi hỏ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ả
Trang 28Nhó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 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 Euclidean của các luồng (vị trí đối tượng và hướng chuyển động của đối tượng) là nhỏ
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) được lựa chọn cẩn
thận (đây là phương pháp dựa trên ảnh) Các hình sau khi được lựa chọn cẩn thận sẽ được quyết định đặc trưng của 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 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
Phương pháp được sử dụng trong luận văn
Trong luận văn, việc phát hiện xe là sự kết hợp giữa 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-like Đây là phương pháp được xem như là phối hợp của cả hai phương pháp đã nêu trên: 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 xe, 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 trên từng khung ảnh (frame) thu được từ nguồn tín hiệu hình ảnh
ặ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
Trang 29hành các tác vụ lên các xe đã được phát hiện 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ệnxe hơi bằng các đặc trưng được liệt kê sau đây:
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 3.3: Các đặc trưng cạnh của đặc trưng Haar-like [4]
Hình 3.4: Các đặc trưng đường của đặc trưng Haar-like [4]
Hình 3.5: Các đặc trưng đường chéo và bao quanh tâm của đặc trưng Haar-like [4]
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
Trang 30 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à đạ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
Như vậy ta có thể thấy, để tính các giá trị đặ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 trưng Haar-like cho tất cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán rất cao, không đáp ứng được cho các ứng dụng đòi hỏi phải thực hiện trong thời gian thực Do đó Viola và Jones đưa ra một khái niệm
gọi là Integral Image, là một mảng hai chiều với kích thước bằng với kích thước của ảnh
cần tính đặc trưng Haar-like, với mỗi phần tử của mảng này được tính bằng công thức
dưới đây [5]:
𝑃𝑃(𝑥𝑥, 𝑦𝑦) = � 𝑖𝑖(𝑥𝑥′, 𝑦𝑦′)
𝑥𝑥 ′ ≤𝑥𝑥,𝑦𝑦 ′ ≤𝑦𝑦Sau khi đã tính được Intrgral Image việc tính tổng các giá trị mức xám 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 các giá trị mức xám của vùng D như trong hình 4, ta có thể tính như sau:
𝐷𝐷 = 𝐴𝐴 + 𝐵𝐵 + 𝐶𝐶 + 𝐷𝐷 – (𝐴𝐴 + 𝐵𝐵) – (𝐴𝐴 + 𝐶𝐶) + 𝐴𝐴
Trang 31Với 𝐴𝐴 + 𝐵𝐵 + 𝐶𝐶 + 𝐷𝐷 chính là giá trị tại điểm P4 trên Integral Image, tương tự như vậy
𝐴𝐴 + 𝐵𝐵 là giá trị tại điểm 𝑃𝑃2, 𝐴𝐴 + 𝐶𝐶 là giá trị tại điểm 𝑃𝑃3, và 𝐴𝐴 là giá trị tại điểm 𝑃𝑃1 Vậy
ta có thể viết lại biểu thức tính 𝐷𝐷 ở trên như sau:
𝐷𝐷 = (𝑥𝑥4, 𝑦𝑦4) − (𝑥𝑥2, 𝑦𝑦2) − (𝑥𝑥3, 𝑦𝑦3) + (𝑥𝑥1, 𝑦𝑦1)
Với: (𝑥𝑥4, 𝑦𝑦4) là 𝐴𝐴 + 𝐵𝐵 + 𝐶𝐶 + 𝐷𝐷, (𝑥𝑥2, 𝑦𝑦2) là 𝐴𝐴 + 𝐵𝐵, (𝑥𝑥3, 𝑦𝑦3) là 𝐴𝐴 + 𝐶𝐶 và (𝑥𝑥1, 𝑦𝑦1) là 𝐴𝐴
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 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 x 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 450 là thông số 𝑟𝑟 = (𝑥𝑥, 𝑦𝑦, 𝑧𝑧, ℎ, 𝛼𝛼)
với 0 ≤ 𝑥𝑥, 𝑥𝑥 + 𝑤𝑤 ≤ 𝑊𝑊; 0 ≤ 𝑦𝑦, 𝑦𝑦 + ℎ ≤ 𝐻𝐻; 𝑥𝑥, 𝑦𝑦 ≥ 0; 𝑤𝑤, ℎ > 0; 𝛼𝛼𝛼𝛼{0𝑜𝑜, 45𝑜𝑜}
Hai ví dụ cho hai trường hợp của hình chữ nhật được cho như sau [6]:
Số lượng đặc trưng xuất phát từ 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
Trang 32Nếu cho X=W/w và Y=H/h thì số lượng đặc trưng đối với kích thước 𝑤𝑤 x ℎ trong ảnh có kích thước 𝑊𝑊 x 𝐻𝐻 được tính theo công thức sau đây:
𝑋𝑋 × 𝑌𝑌 × �𝑊𝑊 + 1 − 𝑤𝑤 ×𝑋𝑋+12 � × �𝐻𝐻 + 1 − ℎ ×𝑌𝑌+12 � (3.1) Trong trường hợp hình chữ nhật đặc trưng nghiêng 45o
thì công thức tính số lượng đặc trưng:
𝑋𝑋 × 𝑌𝑌 × �𝑊𝑊 + 1 − 𝑧𝑧 ×𝑋𝑋+12 � × �𝐻𝐻 + 1 − 𝑧𝑧 ×𝑌𝑌+12 � (3.2)
Với 𝑧𝑧 = 𝑤𝑤 + ℎ
Để chọn các đặc trưng Haar-like dùng cho việc thiết lập ngưỡng, Viola và Jones sử dụng
một phương pháp máy học được gọi là AdaBoost AdaBoost sẽ kết hợp các bộ phân loại
yếu để tạo thành một bộ phân loại mạnh Với bộ phân loại yếu chỉ cho ra câu trả lời chính xác chỉ hơn viện đoán một cách ngẫn nhiên một chút, còn bộ phân loại mạnh có thể đưa
ra câu trả lời chính xác trên 60%
Thu ật toán tăng tốc AdaBoost
AdaBoost (adaptive Boost) là 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) 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ố Điều này thật sự cải thiện dần độ chính xác nhờ áp dụng hiệu quả chuỗi các bộ phân loại yếu
ược đồ cơ bản của thuật toán AdaBoost [6]
Trang 33Thuậ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 (Haar-like feature) đã 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 đượ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
Phương pháp AdaBoost có nhiều dạng khác nhau:
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 Ví dụ một trong các thuật toán huấn luyện [6]:
Trang 34𝑤𝑤1,𝑘𝑘 = 1
2𝑚𝑚,
12𝑙𝑙
𝜀𝜀𝑗𝑗 = � 𝑤𝑤𝑡𝑡,𝑘𝑘�ℎ𝑗𝑗(𝑥𝑥𝑘𝑘) − 𝑦𝑦𝑘𝑘�𝑛𝑛
�
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 mẫu chứa đối tượng, -1 ứng với mẫu không chứa đối tượng)
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 y = 1) và l là số mẫu sai (ứng với y = -1)
3 Xây dựng T bộ phân loại yếu:
Vòng lặp t = 1, …, T
• Với mỗi đặc trưng trong vector đặc trưng, xây dựng một bộ phân
loại yếu ℎ𝑗𝑗 với ngưỡng 𝜃𝜃𝑗𝑗 và lỗi 𝜀𝜀𝑗𝑗
• Chọn ra hj với εj nhỏ nhất, ta được ht:
• Cập nhật lại bộ trọng số:
• Trong đó:
𝑍𝑍𝑡𝑡: Hệ số dùng để đưa về đoạn [0,1] (normalization factor)
4 Bộ phân loại mạnh được xây dựng :
Trang 35→ Trong luận văn này học viên chọn phương pháp GAB dùng để huấn luyện (phương
pháp mặc định trong quá trình chạy huấn luyện)
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, quá trình như vậy cứ tiếp tục cho đến bộ phân loại cuối cùng
Cá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 3.7: Dùng chu ỗi cascade đã được huấn luyện để phát hiện đối tượng [4]
Trang 36 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 đối tượng 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 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 (𝑥𝑥1, 𝑦𝑦1), … , (𝑥𝑥𝑁𝑁, 𝑦𝑦𝑁𝑁) với 𝑥𝑥 ∈ 𝑅𝑅∗ và 𝑦𝑦 ∈ {−1,1}, 𝑥𝑥𝑖𝑖 và 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 𝑥𝑥𝑖𝑖 là đặc trưng của 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
T ầng phân loại
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 huấn luyện qua ít nhất 12 giai đoạn (stage) Đến giai đoạn cuối cùng, giá trị false alarm = 0.512 ≈ 2.44𝑒𝑒−4 và độ trùng khít (hit rate) khoảng =0.99512 ≈ 0.941
Hình 3.8: C ấu trúc của các chuỗi cascade nối tiếp với N giai đoạn học huấn luyện [4]
Giả sử, thiết lập ban đầu với các giá trị mặc định:�𝐹𝐹𝐹𝐹𝑙𝑙𝑠𝑠𝑒𝑒 𝐹𝐹𝑙𝑙𝐹𝐹𝑟𝑟𝑚𝑚 = 0.5𝐻𝐻𝑖𝑖𝑡𝑡 − 𝑟𝑟𝐹𝐹𝑡𝑡𝑒𝑒 = 0.995
Stage1:� 𝑓𝑓 ℎ11= 0.995= 0.5
Trang 37Tại mỗi giai đoạn huấn luyện, bộ phân loại tạo ra 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 dụng 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 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 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ế tiếp (f,h) đượ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 f ứng
với mỗi hit-rate h đã 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
Đặc tính co giãn vùng đặc trưng đối tượng
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 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 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
Trang 38xuố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
3.2.2 Mô hình camera
Việc hiệu chỉnh camera nhằm tạo ra các thông số của camera, cho việc tái tạo không gian 3D của một cảnh nào đó trong thực tế bằng những ảnh mà camera đó chụp lại được Để
có được những thông số đó, các tính toán sau chủ yếu dựa vào mô hình camera thông
dụng nhất hiện nay: mô hình Pinhole [7]
Về mặt hình học, mô hình này bao gồm một mặt phẳng ảnh Π (Image plane) và một tâm điểm O (Eyepoint) nằm trên mặt phẳng tiêu cự Π f (Focal plane), mô hình như sau:
Hình 3.9: Mô hình Pinhole [7]
Một đặc điểm rất cơ bản của mô hình này là tất cả những điểm ảnh p trên mặt phẳng ảnh
Π được tạo thành bởi điểm vật P qua O sẽ là thẳng hàng với O và P, có nghĩa p, O, P là
nằm trên một đường thẳng Điểm O còn được gọi là tâm quang (Optical center), đường
thẳng oO vuông góc với Π và Π f được gọi là trục quang (Optical axis), o được gọi là
điểm chính (Principal point)
Gọi (O, X, Y, Z) là hệ tọa độ camera, (o, x, y) là hệ tọa độ của các điểm ảnh Ta có thể
thấy rằng rõ ràng:
Trang 39𝑋𝑋 = 𝑦𝑦𝑌𝑌 = 𝑓𝑓𝑍𝑍 (3.3)
Từ góc độ hình học mà nói, sẽ không có sự khác biệt gì khi thay mặt phẳng Π bằng một
mặt phẳng ảo nằm ở phía bên kia mặt phẳng Π f Trong hệ tọa độ mới này, mỗi điểm (x, y)
giờ đây sẽ có tọa độ 3D là (x, y, f)
Hình 3.10: Chuyển mặt phẳng ảnh tới trước mặt phẳng tiêu cự [7]
Trong phép chiếu hình học ta đã biết rằng tất cả những điểm nằm trên một đường thẳng vuông góc với mặt phẳng chiếu thì khi chiếu xuống mặt phẳng đó ta chỉ thu được một điểm duy nhất, do đó với bất kỳ một điểm (X, Y, Z) nào đó thì t ỉ lệ sau s(X, Y, Z) hay (sX, sY, sZ) (với s bất kỳ) khi chiếu qua điểm O ta cũng chỉ thu được một điểm m(x, y)
duy nhất Từ lập luận trên và từ phương trình (3.1) ta có:
𝑥𝑥 = 𝑓𝑓𝑋𝑋𝑍𝑍 = 𝑓𝑓𝑠𝑠𝑋𝑋𝑠𝑠𝑍𝑍 ; 𝑦𝑦 = 𝑓𝑓𝑌𝑌𝑍𝑍 = 𝑓𝑓𝑠𝑠𝑌𝑌𝑠𝑠𝑍𝑍 (3.4) Phương trình (3.1) có thể được viết lại như sau:
� (3.5)
Trang 40Trong đó : x = [x, y] và đặt x𝑇𝑇 = [x, y, 1] là vector x thêm 1 vào phần tử cuối cùng Ma
trận:
𝐿𝐿 = �𝑓𝑓 0 0 00 𝑓𝑓 0 0
gọi là ma trận chiếu phối cảnh
Như vậy với mỗi một điểm 𝑃𝑃(𝑋𝑋, 𝑌𝑌, 𝑍𝑍) và một điểm ảnh tương ứng 𝑝𝑝(𝑥𝑥, 𝑦𝑦) ta có thể viết
𝑃𝑃𝑂𝑂 = 𝑅𝑅𝑃𝑃𝑤𝑤 + 𝑇𝑇 Hay tổng quát hơn:
Ma trận R và vector T mô tả hướng, vị trí tương đối giữa hệ tọa độ camera và hệ tọa độ
thực tế Ma trận R chứa 3 phép quay theo (𝑥𝑥, 𝑦𝑦, 𝑧𝑧) và vector T chứa 3 phép tịnh tiến
Những thông số chứa trong R và T được gọi là những thông số ngoại của camera
(extrinsic parameter)