Nghiên cứu và phát hiện hệ thống phát hiện người trong không gian 3D theo thời gian thực sử dụng dữ liệu RGBD Nghiên cứu và phát hiện hệ thống phát hiện người trong không gian 3D theo thời gian thực sử dụng dữ liệu RGBD Nghiên cứu và phát hiện hệ thống phát hiện người trong không gian 3D theo thời gian thực sử dụng dữ liệu RGBD Nghiên cứu và phát hiện hệ thống phát hiện người trong không gian 3D theo thời gian thực sử dụng dữ liệu RGBD Nghiên cứu và phát hiện hệ thống phát hiện người trong không gian 3D theo thời gian thực sử dụng dữ liệu RGBD
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Hà Nội – 2018
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
LÊ THỊ MAI
NGHIÊN CỨU VÀ PHÁT TRIỂN HỆ THỐNG PHÁT HIỆN
NGƯỜI TRONG KHÔNG GIAN 3D THEO THỜI GIAN THỰC
SỬ DỤNG DỮ LIỆU RGB-D
LUẬN VĂN THẠC SỸ CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TRẦN QUANG ĐỨC
Trang 31
MỤC LỤC
LỜI CAM ĐOAN 3
CHƯƠNG 1: GIỚI THIỆU 9
1.1 Mục đích nghiên cứu của đề tài 9
1.2 Phạm vi nghiên cứu của đề tài 10
1.3 Bố cục của luận văn 10
CHƯƠNG : CƠ SỞ L THUY T 12
2.1 Tiền xử lý 16
2.1.1 Giảm mẫu 16
2.1.2 Phân vùng 17
2.2 Trích ch n đặc trưng 23
2.2.1 Kh i niệm HOG 23
2.2.2 C c ước tính vector HOG cho ảnh 25
2.3 Phân lớp, phát hiện đối tượng bằng phương ph p h c máy SVM 26 2.3.1 Khái niệm m y véc tơ hỗ trợ 27
2.3.2 Mô hình phân lớp SVM 27
2.3.3 Chuyển đổi không gian dữ liệu SVM 29
CHƯƠNG 3 X Y D NG CHƯƠNG TR NH PHÁT HIỆN NGƯỜI 31
3.1 ặc tả chương tr nh 31
3.2 Các thư viện mã nguồn mở 32
3.3 Sơ đồ giải thuật chương tr nh 34
3.4 Quá trình xử lý dữ liệu cho phát hiện người 36
3.4.1 Các kiểu dữ liệu trong Point Cloud 37
3.4.2 Cách khai báo dữ liệu cho Point Cloud 38
3.4.3 Chuyển đổi các kiểu dữ liệu cho Point Cloud 38
3.4.4 Mở và lưu file 39
3.4.5 Nối giữa hai Point Cloud 40
3.4.6 Tiền xử lý 40
3.4.7 Trích ch n đặc trưng với HOG 50
3.4.8 Phân lớp phát hiện người 52
Trang 43.5 Xây dựng chương tr nh 53
3.5.1 Xây dựng giao diện 53
3.5.2 Chức năng tự động phát hiện mặt phẳng 55
3.5.3 Phát hiện người 56
3.6 Khảo nghiệm và đ nh gi hệ thống 57
K T LUẬN VÀ HƯỚNG PHÁT TRIỂN 61
TÀI LIỆU THAM KHẢO 62
Trang 53
LỜI CAM ĐOAN
Tên t i là: Lê Th Mai
Sinh ngày: 16 th ng 1 năm 1986
H c viên lớp Cao h c C ng nghệ th ng tin 16 - Trường ại h c Bách Khoa Hà Nội
T i xin cam đoan toàn ộ nội dung của luận văn mà t i thực hiện trong thời gian vừa qua là trung thực và không sao chép của ai
Hà Nội, ngày 28 tháng 8 năm 2018
Tác giả luận văn
Lê Th Mai
Trang 6LỜI CẢM ƠN
Trước tiên em xin được gửi lời cảm ơn tới Ban Giám Hiệu Trường ại
h c Bách Khoa Hà Nội đã tạo điều kiện cho em được làm luận văn tốt nghiệp này Sau thời gian nghiên cứu và làm việc miệt mài, luận văn tốt nghiệp của em đến nay
cơ ản đã hoàn thành Có được thành quả đó, ngoài sự cố gắng nỗ lực của bản thân
còn phải kể đến sự giúp đỡ rất lớn từ thầy giáo TS Trầ Đ , người đã
trực tiếp hướng dẫn, chỉ bảo tận tình và cung cấp tài liệu, kiến thức cũng như kinh nghiệm quý báu cho em trong suốt thời gian làm luận văn Qua đây em xin được
bày tỏ lòng biết ơn sâu sắc tới thầy, kính chúc thầy luôn mạnh khoẻ và công tác tốt
Em xin chân thành cảm ơn c c thầy cô của Viện Công nghệ thông tin và Truyền thông đã hết sức nhiệt tình truyền thụ cho chúng em không chỉ những kiến thức chuyên môn mà cả những kinh nghiệm quý u Em cũng xin cảm ơn Ban Giám Hiệu, c c đồng nghiệp trường Cao đẳng Cơ điện và C ng nghệ thực ph m Hà Nội đã tạo điều kiện và tận t nh giúp đỡ em trong việc tìm hiểu, tiếp cận các kiến thức
Cuối cùng em xin gửi lời cảm ơn chân thành tới gia đ nh và ạn bè Chính gia đ nh và ạn è đã là nguồn động viên hỗ trợ vô cùng to lớn giúp em có thêm động lực và sự khích lệ để hoàn thành luận văn này
Trong quá trình thực hiện đề tài, mặc dù đã cố gắng, tuy nhiên vì thời gian có hạn và tr nh độ còn hạn chế nên luận văn kh ng tr nh khỏi những thiếu sót Em kính mong nhận được các góp ý của Hội đồng Khoa h c và các bạn để đề tài được hoàn thiện hơn
Em xin trân tr ng cảm ơn!
Trang 75
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
RGB-D Red Green Blue – Depth Ảnh màu – độ sâu
RANSAC Random Sample Consensus Thuật to n loại ỏ nền
SVM Support Véc tơ Machine M y véc tơ hỗ trợ
PCL Point Cloud Library Thƣ viện mở xử lý đ m mây điểm
VTK Visualization Toolkit Thƣ viện cung cấp các hàm hiển th
HOG Histogram of Oriented
Gradients
Thuật to n trích xuất đặc trƣng
TN True Negative Số lƣợng điểm của lớp Negative
đƣợc phân loại đúng vào lớp Negative
TP True Positive Số lƣợng điểm của lớp Positive
đƣợc phân loại đúng vào lớp Positive
FN False Negative Số lƣợng điểm của lớp Negative
phân loại sai vào lớp Negative
FP False Positive Số lƣợng điểm của lớp Positive
phân loại sai vào lớp Positive
Trang 8DANH MỤC CÁC HÌNH VẼ
H nh 1 Sơ đồ giai đoạn huấn luyện và phân lớp 12
H nh Sơ đồ giai đoạn thử nghiệm 13
H nh 3 Sơ đồ giai đoạn phát hiện đối tượng 13
Hình 2.4 Quá trình phát hiện đối tượng 15
Hình 2.5 Voxel grid trong không gian ba chiều 16
Hình 2.6 Thay thế c c điểm trong mỗi voxel bằng điểm trung bình 17
Hình 2.7(a)Tập dữ liệu đầu vào thuật toán RANSAC, (b)Kết quả thử khớp đường thẳng với thuật toán RANSAC 19
Hình 2.8 Kết quả của phép biến đổi RANSAC 21
Hình 2.9 Các cụm điểm thành nhóm riêng biệt 22
Hình 2.10 Hình ảnh HOG 23
Hình 2.11 ầu ra của HOG 24
Hình 2.12 Ảnh input và hai đạo hàm của nó 25
Hình 2.13 Siêu phẳng (w, b) tối ưu phân chia class 28
Hình 2.14 Chuyển đổi không gian dữ liệu SVM 29
Hình 3.1 Xtion Pro Live 31
Hình 3.2 Ảnh RGB và ảnh độ sâu (Depth) 32
Hình 3.3 Logo của Point Cloud Library 33
H nh 3 4 Sơ đồ luồng xử lý của chương tr nh 35
H nh 3 5 Sơ đồ giải thuật chương tr nh 36
Hình 3.6 Dữ liệu ảnh 3D trước và sau khi áp dụng bộ l c Voxel grid 41
Hình 3.7 Biểu đồ biểu diễn sự thay đổi điểm ảnh khi thay đổi kích thước ô lưới 42
Hình 3.8 Biểu đồ biểu diễn sự thay đổi thời gian khi thay đổi kích thước ô lưới 42
H nh 3 9 Sơ đồ đ nh nghĩa mặt phẳng nền 43
Hình 3.10 Dữ liệu sau khi loại bỏ mặt phẳng nền 44
Hình 3.11 Dữ liệu sau khi được nhóm sử dụng Euclidean 45
H nh 3 1 Phân đoạn đối tượng người thành các phần theo đặc điểm nhân trắc h c 47
Hình 3.13 Biểu diễn nhóm khi người đi s t nhau trong phân vùng sử dụng hình h c 3D 47
Hình 3.14 Phát hiện đầu và chia cắt thành nhóm khi có người đứng cạnh nhau 49
Hình 3.15 Phát hiện đầu và chia cắt khi người đứng cạnh vật 49
Hình 3.16 Ảnh dữ liệu người b che khuất 50
Hình 3.17 Mở rộng c c đối tượng b che khuất đến mặt phẳng nền nhà 50
Hình 3.18 Toàn bộ c c nhóm được tính HOG 51
Trang 97
Hình 3.19 Sau khi áp dụng hợp nhất các nhóm 52
Hình 3.20 Áp dụng ngưỡng kích thước cho tất cả các nhóm còn lại 53
Hình 3.21 Giao diện chính 53
Hình 3.22 Các chức năng thực hiện 54
Hình 3.23 Quản lý đối tượng 54
Hình 3.24 Thiết lập mặt phẳng sàn nhà 54
Hình 3.25 Hiển th các kết quả xử lý 55
Hình 3.26 Lựa ch n các thông số khi tìm các mặt phẳng 55
Hình 3.27 Các mặt phẳng được tự động phát hiện và khoanh vùng 56
Hình 3.28 Các tham số lựa ch n cho phát hiện người 56
Hình 3.29 Phát hiện người khi đứng quay mặt về phía camera 57
Hình 3.30 Phát hiện người khi đứng nghiêng so với camera 57
DANH MỤC CÁC BẢNG BIỂU Bảng 3-1 Bảng thống kê thời gian thực hiện và số điểm ảnh khi thay đổi kích thước lưới 41
Bảng 3-2 Bảng th ng kê c c đối tượng sau khi sử dụng phương ph p phân vùng Euclidean 46
Bảng 3-3 Bảng kết quả x c đ nh độ chính xác phát hiện 59
Trang 10LỜI MỞ ĐẦU
Ph t hiện đối tượng là một bài toán quan tr ng trong lĩnh vực th giác máy tính và nhận được sự quan tâm lớn của cộng đồng các nhà nghiên cứu trong thời gian gần đây Và đây cũng là hướng nghiên cứu có nhiều ứng dụng trong thực tế: quân sự, giao thông, y tế, d ch vụ… Một nhánh trong phát hiện đối tượng là phát hiện người trong ảnh, video ối với con người thì việc nhận biết c c đối tượng là người trong các ảnh hoặc video là tương đối dễ dàng dù sự khác nhau là rất đa dạng Nhưng đối với th giác máy tính thì công việc này vẫn còn là thách thức lớn
Hiện nay, hướng nghiên cứu th giác máy tính không chỉ tập trung vào việc
xử lý ảnh màu 2D mà còn phát triển cả các công cụ xử lý ảnh 3D Các loại camera 3D trên th trường thường sử dụng kết hợp camera màu RGB truyền thống và camera độ sâu (Depth), cho đầu ra là ảnh kết hợp RGB-D Bài toán nhận diện và phân loại các bề mặt vật thể nói chung và ài to n ph t hiện người nói riêng sử dụng camera RGB-D là một ước khởi đầu cho việc nghiên cứu th giác máy tính theo xu hướng mới hiện nay
Trong khuôn khổ của đề tài, t i hướng đến giải quyết ài to n ph t hiện
người theo thời gian thực thông qua camera RGB_D
Trang 119
1 CHƯƠNG 1: GIỚI THIỆU
Hiện nay các hệ thống phát hiện người chủ yếu th ng qua xử lý ảnh màu D, tuy nhiên các hệ thống có một số điểm hạn chế: khó ph t hiện được người khi h nh ảnh che khuất một phần; Dễ nhầm lẫn với đối tượng kh ng phải là người thật như ảnh hoặc h nh ảnh trên a…Cùng với sự phát triển mạnh mẽ và việc giảm giá thành của các thiết b thu nhận ảnh 3D, c c phương ph p phát hiện đối tượng 3D đang được nghiên cứu rộng rãi trên thế giới Với dữ liệu ảnh RGB-D cho phép hệ thống dễ dàng phân đoạn đối tượng, phân t ch c c đối tượng khi có sự che khuất một phần…qua đó nâng cao tốc độ xử lý và độ chính x c của hệ thống thống ph t hiện người Một số ứng dụng tiêu biểu trong bài toán phát hiện người như:
- Tăng cường an ninh cho khu vực cần được ảo vệ, tr nh sự xuất hiện của con người: Khu vực độc hại, khu vực quân sự
- Sử dụng trong hệ thống hỗ trợ lái xe
- Sử dụng trong c c Ro ot tự hành, là trợ lý ảo trong c c lĩnh vực như: Quản
lý hành chính, tiếp dân; Chăm sóc y tế; Nhà hàng, qu n cà phê …
- Trong ng i nhà th ng minh: Tự động ật đèn, khởi động hệ thống giải trí
đ p ứng nhu cầu của con người
1.1 Mụ đí h hiê u củ đề tài
- Tìm hiểu, nghiên cứu được c c k thuật xử lý đ m mây điểm: Tiền xử lý, phân vùng c c đối tượng, trích ch n đặc trưng và phân lớp cho quá trình phát hiện
- Xây dựng hệ thống phát hiện đối tượng người trong khung cảnh đứng hoặc
đi ộ trên sàn nhà Dữ liệu RGB_D được lấy từ camera 3D: Microsoft Kinect, Asus Xtion Pro … dưới dạng đ m mây điểm ối tượng người được phát hiện trong giới hạn là trạng th i đứng và có khoảng cách từ 2~5m tới camera
Một hệ thống phát hiện người được xây dựng qua nhiều c ng đoạn khác nhau, nhưng có thể khái quát chung hệ thống phát hiện người gồm 4 ước cơ ản: Tiền xử lý, phân vùng, trích ch n đặc trưng, phát hiện người
Trang 12- Tiền xử lý: Hệ thống nhận dữ liệu đầu vào là ảnh màu RGB-D th ng qua thiết đầu vào camera RGB_D như: Microsoft Kinect, sus Xtion Pro… Tiền xử
lý gồm có giảm mẫu, loại bỏ c c điểm dư thừa Mục đích của quá trình này là l c đi những dữ liệu thừa, giảm dung lượng dữ liệu cần xử lý nhằm giảm thời gian tính
to n cho c c ước sau
- Phân vùng: Là qu tr nh ghép c c điểm trong một đ m mây điểm vào một
mô hình hình h c đơn giản như mặt phẳng, mặt trụ, mặt cầu Quá trình này có tác dụng đơn giản hóa dữ liệu đ m mây điểm, giúp nâng cao hiệu quả xử lý của hệ thống
- Trích ch n đặc trưng: Sử dụng đặc trưng để trích xuất ra thông tin đặc trưng riêng biệt của từng đối tượng
- Nhận dạng người: Sử dụng phương ph p SVM để phát hiện người
1.3 Bố cục của luậ vă
Luận văn gồm phần mở đầu, 3 chương chính và cuối cùng là phần kết luận
và hướng phát triển, cụ thể:
Mở đầu
Chương 1: Giới thiệu
Nội dung chương 1: Giới thiệu tổng quan về hệ thống phát hiện người, mục đích, đối tượng, phạm vi nghiên cứu và bố cục của luận văn
Trang 1311
Chương : Cơ sở lý thuyết
Nội dung chương : Trình bày các k thuật xử lý với đ m mây điểm áp dụng trong quá trình phát hiện người
Chương 3: Xây dựng chương tr nh phát hiện người
Nội dung chương 3: ặc tả về phần mềm phát hiện người, quá trình xử lý để phát hiện người Xây dựng phần mềm phát hiện người, khảo nghiệm và đ nh gi hệ thống
Kết luận và hướng phát triển
Trang 14- Giai đoạn phân lớp (classification): ể phân lớp c c đối tượng khác nhau chúng ta sử dụng c c phương ph p phân lớp SVM (Support Vector Machine), NN (Nearest Neigh or), Nạve Bayer … Trong trường hợp nhận dạng tập nhiều đối tượng thì giải pháp sử dụng phương ph p BOW (Bag of Words) để tổng hợp biểu
đồ đặc trưng cho tổng thể c c đối tượng, sau đĩ p dụng phân nhĩm để so khớp biểu
đồ đặc trưng riêng c c lớp so với biểu đồ đặc trưng tổng thể để phân lớp giữa các tập đối tượng
Trang 1513
- Giai đoạn thử nghiệm (testing): Sử dụng các tập đối tượng Positive (người)
và Negative (đối tượng khác) của tất cả các lớp cần nhận dạng để x c đ nh tham số nhận dạng tốt nhất
Hình 2.2 Sơ đồ giai đoạn thử nghiệm
- Giai đoạn phát hiện (detection): Áp dụng các thuật toán tiền xử lý để áp
dụng giảm mẫu, phân vùng đối tượng và tính biểu đồ đặc trưng cục bộ hoặc toàn cục Biểu đồ toàn cục giúp phát hiện nhanh đối tượng trong hoạt cảnh hoặc với lớp đối tượng có hình dạng tương tự nhau, còn biểu đồ cục bộ để x c đ nh chính x c đối tượng cần x c đ nh
Hình 2.3 Sơ đồ giai đoạn phát hiện đối tượng
Tách ảnh RGB Chu n hóa kích
thước 128 x 64 HOG
Phân lớp với SVM
File huấn luyện
Trang 16Nhận dạng 3D khác với 2D là thông tin chứa trong tập dữ liệu của nó, chúng
ta thường chia ra làm 2 dạng: Dạng 1 là chỉ chứa thông tin hình h c không gian XYZ, dạng 2 chứa thêm thông tin màu sắc XYZRGB, như vậy thông tin chúng ta
có trong ảnh 3D là nhiều hơn và do vậy độ chính x c cũng cao hơn Một lợi thế của
xử lý ảnh 3D là phân đoạn đối tượng dễ thực hiện và chính x c hơn so với ảnh 2D, cho dù thuật toán thực hiện phức tạp dựa trên xử lý hình h c, vì vậy thời gian thực thi lâu hơn
Trong các giai đoạn trên, chúng ta có thể tổng hợp thành các quá trình xử lý
dữ liệu như sau: Tiền xử lý, trích ch n đặc trưng, phân lớp phát hiện người
- Tiền xử lý: Có nhiệm vụ giảm số lượng điểm cần tính to n đi nhiều lần mà vẫn giữ được c c đặc tính hình h c cần thiết, tách bỏ đối tượng ra khỏi nền và tách giữa c c đối tượng “gắn liền” với nhau thành các tập dữ liệu riêng biệt
- Trích ch n đặc trưng: Tính, rút trích ra đặc trưng mỗi đối tượng Mỗi đối tượng sẽ được biểu diễn dưới dạng 1 vector đặc trưng có độ dài 128x64
- Phân lớp phát hiện người: Những đặc trưng được rút trích ra từ c c đối tượng sẽ được cho vào bộ huấn luyện phân lớp, với tập dữ liệu đã được huấn luyện, chúng ta có thể x c đ nh đâu là đối tượng người và đâu là c c đối tượng “kh c” căn
cứ vào ngưỡng giá tr trong qu tr nh đ nh gi với tập dữ liệu mẫu
Trang 1715
Hình 2.4 Quá trình phát hiện đối tượng
Trong luận văn t i hướng tới xây dựng hệ thống phát hiện người với các k thuật được áp dụng cho c c ước như sau:
- Tiền xử lý: Giảm mẫu: Sử dụng bộ l c Voxel; Phân vùng: Sử dụng phương
ph p R NS C để loại bỏ nền và sử dụng khoảng cách vật lý và giải thuật tìm kiếm điểm lân cận để t ch c c đối tượng
- Trích ch n đặc trưng: Sử dụng đặc trưng HOG (Histogram of Oriented Gradients)
- Phân lớp, phát hiện người: Sử dụng mô hình phân lớp SVM (Support Vector Machine)
Giảm mẫu
Phân vùng
T ch đối tượng Loại bỏ nền
Tiền xử lý
Ả h đầu vào
Trích chọ đặ trư với từ đối tượng
File huấn luyện
Phân lớp
dữ liệu
Phân lớp phát hiệ ười
Hiển thị kết quả
Trang 182.1 Tiền xử lý
Việc lưu trữ và xử lý một đ m mây điểm lớn với hàng trăm ngàn điểm dưới dạng c c điểm trong không gian ba chiều là một tác vụ rất tiêu tốn tài nguyên phần cứng và cũng là nguyên nhân chính dẫn đến tình trạng thắt cổ chai trong các hệ thống Trong khi đó, trong tập dữ liệu đ m mây điểm, chúng ta chỉ cần các dữ liệu liên quan đến các vật thể cần x c đ nh bề mặt Trong phần này sẽ trình bày các k thuật tiền xử lý đ m mây điểm, qua đó chúng ta có thể giảm số lượng điểm cần tính
to n đi nhiều lần mà vẫn giữ được c c đặc tính hình h c cần thiết
2.1.1 Giảm mẫu
Giảm mẫu có mục đích giảm số lượng c c điểm trong một đ m mây điểm mà không làm mất c c đặc trưng trong đ m mây điểm Một đ m mây điểm sau khi giảm mẫu sẽ có số điểm ít hơn so với an đầu, giúp giảm khối lượng tính toán cho
c c ước tiếp theo Phương ph p giảm mẫu được dùng ở đây sử dụng bộ l c lưới voxel (voxel grid filter) [3]
Mỗi voxel là một h nh hộp, iểu diễn một gi tr điểm trong kh ng gian
Kh i niệm voxel trong kh ng gian a chiều cũng giống như kh i niệm điểm ảnh (pixel) trong mặt phẳng hai chiều Th ng thường khi iểu diễn đồ h a ằng voxel
th mỗi voxel sẽ đại diện cho một điểm, tương đương với t a độ và màu của điểm
đó
Hình 2.5 Voxel grid trong không gian ba chiều
Bộ l c lưới voxel là phương ph p giảm mẫu bằng c ch đưa đ m mây điểm vào trong một không gian gồm c c lưới voxel, với kích thước của lưới lớn hơn so
Trang 1917
với khoảng cách giữa một điểm và điểm gần nó nhất Nói c ch kh c, độ phân giải của đ m mây điểm phải lớn hơn độ phân giải của lưới voxel Sau đó với mỗi voxel, giải thuật sẽ tính toán tâm trung bình của c c điểm bên trong và thay thế c c điểm này bằng duy nhất một điểm tại tâm trung bình
Hình 2.6 Thay thế các điểm trong mỗi voxel bằng điểm trung bình
Phương ph p này có thời gian thực hiện lâu hơn so với phương ph p đơn giản là thay thế bằng điểm nằm ở trung tâm mỗi voxel Tuy nhiên nó có thể giảm mẫu một đ m mây điểm mà vẫn giữ lại nhiều hơn c c đặc tính hình h c Một ưu điểm khác của phương ph p này là trong một số trường hợp, nó còn giúp giảm nhiễu ngẫu nhiên trên tập dữ liệu đầu vào nhờ vào nguyên tắc lấy trung bình các mẫu
2.1.2 Phân vùng
m mây điểm ba chiều là tập hợp c c điểm trong hệ thống t a độ ba chiều, chúng được thu thập từ c c m y quét 3D như Kinect, sus Xtion Pro, laser rangefinger… mỗi điểm chứa các giá tr t a độ ba chiều x, y, z biểu diễn hình dạng hình h c của một đối tượng, mỗi điểm này cũng có thể chứa thêm các thông tin như giá tr màu RGB hoặc giá tr mật độ
Phân vùng ảnh là một ước quan tr ng trong các ứng dụng xử lý ảnh Phân vùng ảnh là qu tr nh ghép nhóm c c điểm trong một đ m mây điểm vào một mô hình hình h c đơn giản như mặt phẳng, mặt trụ, mặt cầu, … sao cho c c điểm trong
đ m mây điểm có khoảng c ch đến mô hình nằm trong khoảng cho phép C c điểm thuộc m h nh sau đó sẽ được đ nh dấu để từ đó có thể thay thế c c điểm bằng một
m h nh đơn giản Quá trình này có tác dụng đơn giản hóa dữ liệu đ m mây điểm, giúp nâng cao hiệu quả xử lý của hệ thống
Trang 202.1.2.1 Loại bỏ nền
Sau khi đ m mây điểm 3D được giảm mẫu và loại bỏ c c điểm nhiễu để phục
vụ cho việc phát hiện đối tượng trong hoạt cảnh ta phải t ch được c c đối tượng đó
ra C c đối tượng thường được đặt trên nền nào đó, giả sử lấy mẫu t trên đường
th đường là nền, hoặc lấy mẫu người trong phòng th tường và nền nhà trong phòng
là nền hay hậu cảnh… Vậy nên muốn t ch c c đối tượng riêng rẽ thì phải có các thuật to n để loại bỏ các nền đó, đó là c c ước loại bỏ nền hay loại bỏ hậu cảnh Trong phần này sẽ trình bày về phương ph p loại bỏ hậu cảnh RANSAC (Random Sample Consensus) [6], [12]
Phương ph p R NS C là một phương ph p lặp được sử dụng để đ nh gi các tham số của một mô hình từ một tập dữ liệu, một quá trình lặp gồm ch n ngẫu nhiên các nhóm phụ trong tập dữ liệu và kiểm tra nhóm đó để đ nh gi lỗi so với các tham số m h nh đã xây dựng trước đó, qu tr nh lặp kết thúc khi chúng ta tìm được một mô hình mà lỗi của nó thấp hơn lỗi của c c m h nh đã được lưu trước đó
Vì thế mà chỉ bằng c ch đ nh nghĩa c c tham số cho đ m mây điểm nền mà ta đang cần tìm, ta có thể dễ dàng t m ra nó trong đ m mây điểm Ưu điểm của phương pháp này là khả năng ước lượng các tham số mô hình, nó có thể ước lượng các tham
số của mô hình với độ chính xác cao dù trong tập dữ liệu có nhiều điểm không thuộc m h nh, nhưng nhược điểm của phương ph p là kh ng x c đ nh được mức thời gian để tính toán tham số của mô hình và nếu trong tập dữ liệu có hai mô hình giống nhau cùng tồn tại th phương pháp chỉ t m ra được một mô hình mà không tìm được mô hình còn lại
ể loại bỏ hậu cảnh ta cũng có thể đ nh nghĩa trước hình dạng của hậu cảnh
đó, ví dụ như có dạng mặt phẳng, đường cong…Sau đó dùng thuật toán RANSAC
để tách hậu cảnh đó từ đ m mây điểm
Thuật to n R NS C được xuất bản lần đầu tiên bởi Frischler và Bolles năm
1981, một ví dụ minh h a ứng dụng của thuật to n này như h nh:
Trang 2119
Hình 2.7(a)Tập dữ liệu đầu vào thuật toán RANSAC, (b)Kết quả thử khớp đường
thẳng với thuật toán RANSAC
Trong ví dụ trên, một tập dữ liệu chứa c c điểm có thể khớp tới một đường thẳng, và c c điểm không thể khớp tới đường thẳng, sử dụng phương ph p nh phương cực tiểu để thử khớp đường thẳng sẽ được một kết quả tồi do thuật toán này được tối ưu để thử khớp với tất cả c c điểm kể cả c c điểm trong tập dữ liệu, vì thế
mà sử dụng thuật toán RANSAC có thể tạo mô hình mà chỉ tính toán với c c điểm thuộc đường thẳng nên tạo kết quả rất tốt
ầu vào của thuật toán RANSAC là tập dữ liệu được thu thập trước, thuật toán RANSAC sẽ tiến hành lặp đi lặp lại hai ước cơ ản sau:
ưa ra giả thiết: ầu tiên thuật toán sẽ ch n ngẫu nhiên một tập hợp tối thiểu các mẫu dữ liệu từ tập dữ liệu đầu vào và các tham số của m h nh được tính toán chỉ sử dụng các thành phần trong tập dữ liệu đó, số các yếu tố của tập hợp đó là khả năng nhỏ nhất để x c đ nh các tham số mô hình (Trong khi với phương ph p nh phương cực tiểu sử dụng tất cả các dữ liệu có giá tr để ước lượng tham số mô hình)
Kiểm chứng giả thiết: Các mẫu dữ liệu khác của tập dữ liệu đầu vào được kiểm tra ngược lại mô hình ở ước một với một giá tr dung sai đã được đ nh nghĩa
Trang 22trước , nếu một điểm được khớp tốt tới m h nh ước lượng trên th được đ nh dấu
là thuộc mô hình, nếu tỉ số giữa số điểm thuộc mô hình trên tổng số điểm của tập dữ liệu mà quá một ngưỡng đã được đ nh nghĩa trước thì các tham số của mô hình sẽ được ước lượng lại sử dụng tất cả c c điểm đã được đ nh dấu là thuộc mô hình, ngược lại sẽ lặp lại từ ước một
Thường trình này được lặp đi lặp lại ở một số lần N cố đ nh, mỗi lần tạo một
mô hình khác nhau, mô hình b loại bỏ nếu có qu ít điểm mẫu dữ liệu được đ nh dấu thuộc mô hình Cuối cùng, thuật toán chỉ giữ lại mô hình nếu lỗi của nó thấp hơn lỗi của c c m h nh đã lưu trước đó
Số lần lặp lại N được ch n đủ cao để chắc chắn rằng xác suất p (thường đặt ở 0.99) ở ít nhất một trong các tập của mẫu dữ liệu ngẫu nhiên không chứa c c điểm nằm ngoài m h nh, đặt u là xác suất mà bất kỳ điểm dữ liệu được ch n thuộc mô hình, và v = 1 – u là xác suất khả năng thấy một điểm không thuộc mô hình, số điểm nhỏ nhất ch n ngẫu nhiên là m thì ta có biểu thức:
Trang 23Các phương ph p ghép nhóm đơn giản sử dụng c ch t m c c đường iên hay
so s nh về khoảng c ch đến c c điểm lân cận để nhóm c c điểm gần nhau lại với nhau
Giả sử trong tập dữ liệu P = {p1, p2, …, pn , hai nhóm Oi = {pi P và Oj = {pj P} là hai nhóm riêng biệt nếu:
min||pi – pj|| ε Với ε là ngưỡng khoảng cách giới hạn Nói cách khác, nếu khoảng cách nhỏ nhất giữa hai tập c c điểm Oi = {pi P} và Oj = {pj P} lớn hơn một ngưỡng giới hạn cho trước, th khi đó Oi và Oj là hai nhóm khác nhau
Trang 24Hình 2.9 Các cụm điểm thành nhóm riêng biệt
Trong ài to n như trên, phương ph p ghép nhóm đơn giản nhất là phương pháp sử dụng khoảng cách vật lý và giải thuật tìm kiếm điểm lân cận C c ước để thực hiện giải thuật này như sau:
- Với dữ liệu đầu vào là đ m mây điểm P, tạo cây kd-tree biểu diễn dữ liệu
để thuận lợi cho việc tìm kiếm lân cận
- Tạo ra một danh sách nhóm C và c c điểm cần được khảo sát Q Ban đầu,
c c điểm cần được khảo sát là toàn bộ dữ liệu đầu vào
- Với mỗi điểm pi P, thực hiện c c ước sau:
+ Thêm pi vào danh s ch c c điểm cần khảo sát Q
+ Với mỗi pi P, tìm kiếm c c điểm lân cận của trong bán kính r = ε Sau đó kiểm tra c c điểm lân cận này đã được xử lý hay chưa, nếu chưa được
xử lý th thêm điểm đó vào Q
Trang 2523
+ Khi tất cả c c điểm trong Q đã được xử lý, điều đó có nghĩa là
kh ng còn điểm nào trong P có khoảng c ch đến Q nhỏ hơn ε Q được coi là một nhóm
Qu tr nh trên được lặp lại cho đến khi tất cả c c điểm đều thuộc một nhóm
nào đó
2.2 Trí h họ đặ trưng
C c đặc trưng h nh h c trong đ m mây điểm có thể được chia làm hai dạng: đặc trưng mang tính cục bộ (local feature) hoặc đặc trưng mang tính toàn thể (glo al feature) Trong phần này sẽ trình bày về phương ph p x c đ nh đặc trưng điểm HOG [8]
2.2.1 Khái iệ HOG
Histogram of Oriented Gradients (HOG) là một thuật to n để trích xuất thuộc tính hình ảnh Cụ thể HOG chia h nh ảnh đầu vào thành một lưới các ô vuông Mỗi
ô vuông trích xuất thành một vector hướng của gradient trong cell đó
Hình 2.10 Hình ảnh HOG
Trích dẫn một ví dụ về đầu ra của HOG từ trang scikit-image.org
Trang 26Hình 2.11 Đầu a của
Từ ví dụ trên ta có thể thấy, trích xuất thuộc tính bằng HOG bảo toàn thông tin về đường viền của đối tượng trong ảnh, làm mất đi c c th ng tin về màu sắc, giảm độ sắc nét của dữ liệu
Phương pháp HOG dựa trên việc đếm số lần xuất hiện của c c hướng đạo hàm (gradient orientation) trong các vùng cục bộ của ảnh Bản chất của phương pháp HOG là các thông tin về hình dáng và vẻ bề ngoài của c c đối tượng cục bộ trong ảnh có thể được mô tả bằng cách sử dụng thông tin về sự phân bố của các cường độ gradient (intensity gradients) hoặc của c c hướng biên (edge directions) Các toán tử HOG được cài đặt bằng cách chia nhỏ một bức ảnh thành các vùng con
được g i là c c “tế bào” (cells) và với mỗi cell đó một histogram về các hướng của
gradients sẽ được tính cho các điểm nằm trong cell Ghép các histogram này lại ta sẽ
có một biểu diễn cho bức ảnh ban đầu
ể tăng cường hiệu năng phát hiện, các histogram cục bộ có thể được chu n hóa về độ tương phản bằng cách tính một ngưỡng cường độ trong một vùng lớn hơn của ảnh, g i là các khối (blocks) và sử dụng giá tr ngưỡng đó để chu n hóa tất cả các cell trong khối Kết quả của ước chu n hóa này là vector đặc trưng sẽ có tính bất biến cao hơn đối với c c thay đổi về điều kiện ánh sáng
Trang 2725
2.2.2 Cá ướ tí h v t r HOG h ả h
C c ước cơ ản của việc tính một vector HOG cho một ảnh gồm có: Tính gradient, g n hướng vào các vùng giá tr khác nhau, tính histogram của các khối và cuối cùng là chu n hóa các khối
Tính gradient: ây là ước đầu tiên trong phương ph p HOG và thường
được thực hiện bằng hai phép nhân chập ảnh gốc với 2 nhân 1 chiều tương ứng với các toán tử lấy đạo hàm ảnh theo hai hướng Ox và Oy, cụ thể là:
Dx = [-1 0 1] và Dy = [1 0 -1]T
Trong đó T là ký hiệu của phép chuyển v ma trận
Với một ảnh input I, ta sẽ có 2 ảnh đạo hàm riêng theo hướng được tính bằng các công thức:
Ix = I*Dx và Iy = I*Dy
Thành phần cường độ (magnitude) và hướng (orientation) sẽ được tính theo các công thức:
|G| = sqrt(Ix 2 + Iy 2) và = arctan(Iy, Ix)
Ví dụ về kết quả của phép lấy đạo hàm có thể xem ở hình sau:
Hình 2.12 Ảnh input và hai đạo hàm của nó
Gán hướng: Sau khi tính đạo hàm, ta có thành phần hướng ở các điểm ảnh
trong mỗi cell của ảnh input Các giá tr hướng này được chia thành c c vùng hướng đều nhau trong khoảng từ 0 tới 360o Theo các tác giả của HOG, thì 9 vùng chia cho
Trang 28kết quả tốt nhất đối với các bài toán phát hiện Có nghĩa là c c gi tr hướng nằm trong khoảng [0, 360/9) sẽ được gán bằng 1 (coi là như nhau), các giá tr hướng trong khoảng [360/9, 2*360/9) sẽ được gán bằng 2 Sau đó histogram của mỗi cell sẽ được tính độc lập
Tính histogram của các khối: ể đ p ứng tốt hơn với các thay đổi về điều
kiện ánh sáng và độ tương phản, các giá tr gradient cần phải được chu n hóa cục bộ, điều này đòi hỏi việc nhóm các cell thành các vùng liên kết không gian với nhau g i
là các khối Vector HOG do đó sẽ là tổng hợp các histogram của các cell đã được chu n hóa từ tất cả các khối Các khối sẽ được chia và không tách biệt nhau, nói cách khác mỗi cell sẽ đóng góp th ng tin về c c hướng (tại c c điểm ảnh của nó) nhiều hơn 1 lần
Chuẩn hóa khối: G i v là vector cần chu n hóa chứa tất cả các histogram của một khối, ||v k|| là giá tr chu n của nó theo các chu n k = 1, 2 và e là một hằng
số nhỏ, khi đó c c gi tr chu n hóa có thể tính bằng 1 trong các công thức sau:
√‖ ‖
‖ ‖ √‖ ‖ Trong các công thức trên, v là vector đặc trưng an đầu của khối, vk là k-norm của v ( k = 1, 2), e là hằng số nhỏ
2.3 Phân lớp, phát hiện đối tượng bằ phươ pháp học máy SVM
Sau khi trích xuất được c c đặc trưng điểm từ dữ liệu đ m mây điểm, c c đặc trưng này sẽ được sử dụng để nhận diện các dạng bề mặt trên đ m mây điểm cần khảo s t tưởng ở đây là so s nh c c đặc trưng điểm thu được với một mô hình sẵn có và xếp chúng vào các loại đã được nhận diện ể thực hiện điều này, tôi sử
Trang 2927
dụng phương ph p m y véc tơ hỗ trợ (SVM) Trong phần này sẽ trình bày khái niệm cũng như c ch hoạt động của phương ph p SVM trong ài to n nhận diện và phân loại dữ liệu
2.3.1 Khái niệ áy vé tơ hỗ trợ
Phương ph p Support Vector Machine (M y Véc tơ hỗ trợ - SVM) là một phương ph p h c m y được sử dụng cho các bài toán phân loại dữ liệu [5] Về cơ bản, SVM nhận dữ liệu vào và phân loại chúng vào hai lớp kh c nhau Do đó SVM
là giải thuật phân loại nh phân Với một bộ các ví dụ luyện tập (training data) trong không gian nhiều chiều, thuộc hai lớp cho trước, giải thuật luyện tập SVM xây dựng một m h nh để tìm ra một siêu phẳng (hyperplane) phân chia ranh giới giữa hai nhóm sao cho khoảng cách từ c c véc tơ luyện tập tới ranh giới là xa nhất có thể Sau khi đã có mô hình SVM, các ví dụ mới cũng được biểu diễn trong cùng một
kh ng gian và được mô hình dự đo n thuộc một trong hai lớp tùy vào ví dụ đó nằm
ở phía nào của siêu phẳng
2.3.2 Mô hình phân lớp SVM
Thuật to n được sử dụng với SVM là thuật toán tìm siêu phẳng phân chia dữ
liệu đã có Giả sử có l dữ liệu huấn luyện:
D = {(xi,yi)|(xi Rd
), yi {-1,1 , i = 1,…,l}
Trong đó:
- D là tập dữ liệu đầu vào gồm có mẫu
- xi là dữ liệu đầu vào Dữ liệu này có dạng véc tơ trong kh ng gian d chiều,
với mỗi chiều biểu diễn một thuộc tính
- yi là nhãn của dữ liệu xi, nhận giá tr –1 và 1, thể hiện dữ liệu xi thuộc lớp –
1 hay 1
Sau quá trình luyện tập với tập dữ liệu đầu vào D, SVM sẽ đưa ra c c tham
số của phương tr nh siêu phẳng ranh giới giữa hai lớp, hai tham số này là véc tơ w
có p chiều và một tham số b Phương tr nh của siêu phẳng là:
Trang 30w.x + b = 0
Khi đó hàm số biểu diễn dấu của biểu thức:
f(x) = sign(w.x + b)
Là hàm số có khả năng phân chia hoàn toàn dữ liệu vào một trong hai lớp
Hình 2.13 Siêu phẳng (w, b) tối ưu phân chia 2 class
Sau quá trình luyện tập, c c véc tơ mẫu thử có thể đƣợc phân vào một trong hai lớp ằng hàm số f(x):
- f(x) = sign(w.x + b) > 0: xếp mẫu thử vào lớp 1
- f(x) = sign(w.x + b) < 0: xếp mẫu thử vào lớp -1
Theo thuật toán h c SVM, hệ số w và đƣợc tính theo công thức:
- ∑
-
Trong đó c c véc tơ là c c véc tơ hỗ trợ C c véc tơ hỗ trợ là c c véc tơ nằm sát với siêu phẳng phân cách hai phân lớp này là véc tơ hỗ trợ với nhãn +1, là véc tơ hỗ trợ với nhãn -1
Trang 3129
2.3.3 Chuyể đổi không gian dữ liệu SVM
C c véc tơ thuộc tập D có thể đƣợc phân thành hai lớp trong không gian P chiều bởi một siêu phẳng hoặc không Do SVM là một thuật toán sử dụng siêu phẳng để phân lớp, nếu c c véc tơ thuộc tập D không thể đƣợc phân lớp trong không gian P chiều bởi một siêu phẳng thì cần chuyển đổi c c véc tơ thuộc tập D sang một không gian mới bằng một phép chuyển đổi không phá vỡ tính phân lớp của tập D mà vẫn có thể phân lớp chúng bằng một siêu phẳng Phép biến đổi này đƣợc kí hiệu nhƣ sau:
Hình 2.14 Chuyển đổi không gian dữ liệu SVM
Phép iến đổi từ thành có thể giữ nguyên hoặc làm tăng, giảm số chiều P của không gian x Việc chuyển đổi c c véc tơ thành c c véc tơ theo các phép chuyển đổi đƣợc g i là Kernel
Trang 32Trong quá trình h c SVM, đầu tiên ta coi tập huấn luyện và tập thử nghiệm
là có thể đƣợc phân tách bởi siêu phẳng và không cần dùng hàm Kernel để chuyển đổi không gian của tập dữ liệu Nếu sai số thử nghiệm là nhỏ, ta không cần chuyển đổi không gian Tuy nhiên nếu sai số là lớn, ta cần chuyển đổi không gian tập dữ liệu sử dụng một số các hàm Kernel phổ biến