Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng

TÓM TẮT— Thiết bị Microsoft (MS) Kinect ngày càng được sử dụng rộng rãi trong các ứng dụng thị giác máy, tương tác người máy, robot dẫn đường Khác với các thiết bị Time-Of-flight camera đắt tiền trước đây, Kinect có ưu điểm là giá rẻ nhưng vẫn cung cấp dữ liệu về độ sâu đồng thời với ảnh RGB ở độ phân giải chấp nhận được. Tuy nhiên Kinect được thiết kế đóng kín cả về phần cứng và phần mềm, do đó phát triển ứng dụng trên Kinect thường gặp một số vấn đề khó khăn như: không tương ứng giữa tọa độ hình ảnh và độ sâu, nhiễu và lỗi đo trong ảnh độ sâu Bài báo này sẽ trình bày một số hướng giải quyết những vấn đề căn bản này, tạo nền tảng phát triển các ứng dụng trên thiết bị Kinect. Đầu tiên, chúng tôi giới thiệu về phần cứng Kinect và các bộ thư viện mở hỗ trợ Kinect, đặc biệt là bộ thư viện mở OpenKinect. Tiếp theo, chúng tôi trình bày phương pháp căn chỉnh, sửa méo, làm khớp (Kinect Calibration) dữ liệu hình ảnh và độ sâu. Khai thác thông tin về độ sâu là một trong những điểm mạnh của Kinect, chúng tôi sẽ trình bày phương pháp sử dụng ảnh độ sâu để tách nền, ứng dụng trong bài toán phát hiện cử chỉ tay nhằm hỗ trợ trong việc nhận dạng trong các bài toán tiếp theo. Kết quả tách được so sánh đánh giá với phương pháp sử dụng dữ liệu ảnh RGB truyền thống, cho thấy ưu việt vượt trội của thiết bị Kinect trong giải quyết vấn đề tách đối tượng ra khỏi nền trong các ứng dụng thị giác máy tính

Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng trang 1

Trang 1

Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng trang 2

Trang 2

Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng trang 3

Trang 3

Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng trang 4

Trang 4

Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng trang 5

Trang 5

Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng trang 6

Trang 6

Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng trang 7

Trang 7

pdf 7 trang xuanhieu 5300
Bạn đang xem tài liệu "Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng

Khai thác dữ liệu ảnh độ sâu từ cảm biến Kinect: Sửa lỗi và ứng dụng
IR Projector) phát ra ánh sáng có cấu trúc (structured light) để tạo ra giá trị độ sâu bằng công nghệ Light coding 
của PrimeSense. Kỹ thuật light coding dùng nguồn sáng hồng ngoại của bộ phát ánh sáng hồng ngoại chiếu liên tục vào 
môi trường xung quanh kết hợp với việc sử dụng máy ảnh hồng ngoại chụp lại, sau đó tính toán để thu được ảnh độ 
sâu. Bằng việc so sánh giữa mẫu quan sát được và mẫu tham khảo biết trước, Kinect dự đoán về khoảng cách từ Kinect 
đến đối tượng. Kinect có thể cung cấp ảnh độ sâu trong điều kiện ánh sáng rất tối và ít chịu ảnh hưởng của chất lượng 
bề mặt vật thể. Hơn nữa, thiết bị Kinect có giá thành rẻ, nhỏ gọn và rất dễ sử dụng, độ phân giải và tốc độ thu nhận ảnh 
chấp nhận được (1280 x 1024 điểm ảnh hoặc 640 x 480 điểm ảnh). Tuy nhiên, trong thực tế, phương pháp đo độ sâu 
của Kinect thường gặp một số lỗi, hoặc sai số đo phụ thuộc khoảng cách [9]. Ví dụ, khi Kinect đo ảnh độ sâu với đối 
tượng là một bề mặt phẳng, một số lượng nhiễu đáng kể trên ảnh độ sâu có thể quan sát được. Một vấn đề khác là phối 
ghép các kết quả ảnh độ sâu thu được từ các Kinect khác nhau. Các vấn đề về sửa lỗi và Calib Kinect đối với ảnh độ 
sâu được trình bày trong phần dưới đây. 
Đoàn Thị Hương Giang, Vũ Hải, Trần Thị Thanh Hải 3 
Hình 2. Phương pháp đo giá trị độ sâu của Kinect 
II. CĂN CHỈNH DỮ LIỆU ĐỘ SÂU (DEPTH) VÀ ẢNH (RGB) 
A. Kinect Calibration 
Do ảnh thu thập từ 02 cảm biến đặt ở các góc nhìn khác nhau làm cho dữ liệu thu thập có sự lệch tọa độ giữa ảnh màu 
và ảnh độ sâu. Calibration là phương pháp tìm một biến đổi gồm: dịch chuyển – translation và xoay (rotation) giữa các 
ảnh màu và độ sâu về cùng một hệ tọa độ. Một số phương pháp nghiên cứu về Calibration để joint dữ liệu độ sâu và 
ảnh RGB đã được nghiên cứu bởi Herrera et al [7], Yamanazoe [6]. Herrera et al. [7] sử dụng hình ảnh độ phân giải 
cao thu được từ một camera gắn ngoài. Herrera et al. sau đó sử dụng một mô hình không tham số. Trong phương pháp 
này, một số lượng lớn tham số cần phải dự đoán trước. Do đó, [7] sử dụng phương pháp tối ưu hóa để tìm ra bộ tham 
số này. Hiệu quả của phương pháp calib [7] thể hiện trong Hình 3. Nếu không có quá trình calib, tọa độ trên ảnh độ sâu 
và ảnh RGB là không tương ứng. Điều này được minh họa trên Hình 3(c), nơi các đường biên của ảnh độ sâu không vẽ 
đúng trên ảnh RGB. Sau khi sửa dữ liệu depth bằng phương pháp Calib [7] (Hình 3(d)), đường biên của dữ liệu depth 
đã Calib được vẽ trùng khớp trên ảnh RGB (Hình 3(e)). Các phương pháp calib đồng thời cũng được sử dụng khi phối 
ghép các dữ liệu thu từ nhiều cảm biến Kinect. Điều này đặc biệt có ý nghĩa khi dùng Kinect để tạo tập các điểm 3-D 
point cloud data; thường sử dụng trong các bài toán phát hiện và nhận dạng đối tượng 3-D 
(a) (b) (c) 
 (d) (e) 
Hình 3. Ảnh độ sâu và ảnh màu sau khi hiệu chỉnh. (a) Ảnh độ sâu, (b) Ảnh màu tương ứng, (c) Đường biên của ảnh độ sâu vẽ trên 
ảnh màu, (d) Ảnh độ sâu đã được calib, (e) Đường biên của ảnh độ sâu đã calib vẽ trên ảnh màu. 
B. Khử nhiễu với KINECT 
Các cảm biến đo độ sâu (Time-of-flight) camera và Kinect đều có những vấn đề về nhiễu trên dữ liệu đo. Có một số 
nguyên nhân chính gây ra nhiễu trên ảnh độ sâu như: chất lượng cảm biến, phương pháp setup cách đo, thuộc tính trên 
bề mặt của đối tượng đo. Ngoài ra độ chính xác của phương pháp đo độ sâu cũng phụ thuộc vào khoảng cách [9]. Hình 
4 (a) thể hiện lỗi trên cảm biến IR, vùng đối tượng nằm trong vùng diện tích ở tâm của khung ảnh trong bán kính xung 
quanh 0,005mm thì không bị méo, càng ra ngoài biên ảnh thì độ méo của hình ảnh độ sâu càng tăng; và Hình 4(b) thể 
hiện lỗi đo phụ thuộc vào khoảng cách, càng ở khoảng cách xa thì lỗi đo càng tăng lên. 
Đoàn Thị Hương Giang, TS.Vũ Hải, TS.Trần Thị Thanh Hải 4 
Hình 4. Một số lỗi đối với ảnh độ sâu. (a) Lỗi méo trên ảnh độ sâu, (b) Lỗi đo theo khoảng cách 
Ngoài lỗi có tính hệ thống trên ảnh độ sâu, dữ liệu độ sâu đồng thời còn gặp một số lượng lớn lỗi có tính ngẫu nhiên. 
Đặc biệt ở vùng biên của đối tượng. Ví dụ: hình 5 thể hiện nhiễu lớn khi đo trên đối tượng là một mặt phẳng. Hình 5(b) 
thể hiện nhiễu với cường độ rất mạnh xung quanh ở các đường biên của check-board. Một số phương pháp sữa nhiễu 
đã được đề xuất (ví dụ [12]). Kết quả sửa nhiễu theo phương pháp [12] được thể hiện ở Hình 5(d). 
Hình 5. Cơ chế giải nhiễu ảnh độ sâu. (a) Ảnh độ sâu với nhiễu. (b). Phóng to vùng nhiễu gần sát biên của đối tượng. (c). Ảnh màu 
RGB tương ứng. (d). Ảnh độ sâu đã được khử nhiễu 
III. SỬ DỤNG ẢNH ĐỘ SÂU TRONG BÀI TOÁN TRỪ NỀN 
A. Giới thiệu bài toán trừ nền 
Bài toán trừ nền nhằm mục đích tách đối tượng quan tâm ra khỏi ngữ cảnh là một trong những bài toán rất quan trọng 
trong các ứng dụng xử lý ảnh như: phát hiện, theo bám người, Để giải quyết những bài toán này, những nhà khoa 
học có thể sử dụng đối tượng là ảnh màu, ảnh độ sâu, ảnh 3D,  Với mỗi loại ảnh đã có nhiều kỹ thuật khác nhau như: 
dựa vào điểm ảnh tương ứng trên hai ảnh, dựa vào việc chia ảnh thành các khối sau đó so sánh các khối tương ứng, sử 
dụng đặc trưng phân bố các thuộc tính của đối tượng trong ảnh, hoặc kết hợp các thuộc tính này cũng đem đến nhiều 
các kỹ thuật khác nhau để trừ nền. Các bài toán trừ nền sử dụng ảnh màu đang gặp một số vấn đề hạn chế đó là các đặc 
trưng nêu trên không bất biến với sự thay đổi của điều kiện chiếu sáng, hay sự giống nhau của đối tượng và nền, Gần 
đây, dữ liệu ảnh độ sâu của camera TOF hay Kinect đã đem đến nhiều thuận lợi cho bài toán trừ nền khác nhau và đặc 
biệt là bài toán trừ nền với ngữ cảnh trong nhà. 
Ở đây, chúng tôi thấy rằng, ảnh độ sâu thu được từ Kinect đem đến thông tin rất tốt về khoảng cách từ các đối tượng 
đến camera. Hơn nữa, với hình ảnh mà chúng tôi nghiên cứu, thông thường thì đối tượng người thường gần camera hơn 
và tay lại gần camera hơn người (do tay ở phía trước người). Do đó, lược đồ của đối tượng người cũng như đối tượng 
tay sẽ có đặc trưng riêng trong ảnh. Vì vậy, chúng tôi đề xuất phương pháp sử dụng để tách nền là sử dụng đặc trưng 
phân bố các thuộc tính của các đối tượng trong ảnh. 
B. Phương pháp thực hiện 
Chúng tôi đã nghiên cứu nhiều phương pháp khác nhau khi sử dụng ảnh độ sâu cho bài toán trừ nền. Ở đây chúng tôi 
đề xuất phương pháp với các bước như sơ đồ khối trong hình 6 dưới đây: 
Hình 6. Quá trình tách hình ảnh bàn tay từ ảnh thu thập từ cảm biến Kinect 
Các bước hiệu chỉnh ảnh độ sâu như khử nhiễu và căn chỉnh ảnh (calibration) đã được mô tả ở phần trên. 
Đoàn Thị Hương Giang, Vũ Hải, Trần Thị Thanh Hải 5 
1. Tách ảnh người ra khỏi nền 
Tách người ra khỏi nền là một bài toán rất phổ biến trong các ứng dụng như theo bám người trong hệ thống giám sát, 
nhận dạng hoạt động của người (human activities). Mặc dù đã có nhiều hướng tiếp cận sử dụng các phương pháp tách 
nền truyền thống như so sánh khác biệt giữa frame và mô hình nền, mô hình nền sử dụng kỹ thuật GMM (Gaussian 
Mixture Model). Các phương pháp này thường gặp phải vấn đề khó khăn vì phần cơ thể người không phải là dạng bất 
biến (non-rigid object). Trong nghiên cứu này, chúng tôi khai thác khoảng dữ liệu hiệu quả của ảnh độ sâu vì thông 
thường đối tượng người thường gần camera hơn và tay lại gần camera hơn người (do tay ở phía trước người). 
Đưa vào một ảnh độ sâu D(x,y), lược đồ (histogram) ảnh độ sâu được xây dựng như sau: 
 ( ) 
∑ * ( )+ ( )
 (1) 
Trong đó: 
 M,N: là kích thước của ảnh độ sâu 
 L: là giá trị độ sâu lớn nhất của ảnh 
 n: là tổng số các điểm ảnh của ảnh độ sâu 
 D(x,y): là ảnh độ sâu 
Hình 7 minh họa quá trình xây dựng lược đồ từ ảnh độ sâu cho trước. 
Hình 7. (a) - Ảnh độ sâu thu thập từ camera kinect. (b) – Lược đồ dữ liệu ảnh độ sâu; 
Để xác định khoảng dữ liệu ảnh độ sâu hiệu quả cho việc tách người ra khỏi nền, chúng tôi tìm kiếm trên lược đồ mức 
xám (hình 7(b)) một ngưỡng với tiêu chuẩn lựa chọn như sau: 
 ∑ ( ) (2) 
Với {
 ( ) 
 ( ) 
k là giá trị bin bắt đầu của vùng diện tích 
m là khoảng cách từ k đến giá trị cuối của vùng diện tích 
Việc khó nhất là phải lựa chọn được ngưỡng area để có thể thu được hình ảnh người tách khỏi nền chính xác nhất. Và 
để chọn tham số đó, chúng tôi tiến hành so sánh ảnh thực tế phần cơ thể người mà chúng tôi đã tách nền với ảnh 
Ground True cơ thể người dựa vào nguyên tắc của đường cong ROC (receiver operating characteristic). 
2. Tách tay ra khỏi người 
Trừ nền bằng cách sử dụng đặc trưng phân bố các thuộc tính của các đối tượng trong ảnh dựa vào lược đồ ảnh độ sâu 
để thu được hình ảnh chỉ có người. Sau đó tạo lược đồ của ảnh cơ thể người đã trừ nền ở trên. Hình 8 minh họa quá 
trình xây dựng lược đồ từ ảnh đã tách người khỏi nền ở phần trước: 
Hình 8. (a) - Ảnh tách người khỏi nền; (b) – Lược đồ dữ liệu ảnh cơ thể người đã tách nền 
Tách tay bằng cách sử dụng đặc trưng phân bố các thuộc tính của các đối tượng trong ảnh dựa vào lược đồ và tìm kiếm 
giá trị vùng diện tích hiệu quả để có thể tách được hình ảnh bàn tay ra khỏi người cũng tương tự như phương pháp tách 
người khỏi nền. Hình vẽ sau đây minh họa hình ảnh tách tay khỏi người: 
Đoàn Thị Hương Giang, TS.Vũ Hải, TS.Trần Thị Thanh Hải 6 
Hình 9. Ảnh bàn tay tách từ ảnh cơ thể người 
C. Đánh giá kết quả 
Chúng tôi tiến hành thử nghiệm trên nhiều video khác nhau và đánh giá kết quả trên các video số 5, 27, 56 và 58 của 
bộ cơ sở dữ liệu của Chalearn2013. Trong mỗi video có khoảng 20 khung hình, chúng tôi lấy ngẫu nhiên 20% số 
khung hình của mỗi video. Đồng thời sử dụng một tập các giá trị ngưỡng trong công thức [2]: [0,004; 0,005; 0,015; 
0,03; 0,035; 0,05; 0,1; 0,15] và so sánh với ảnh Ground Truth bằng cách thực hiện việc tính các giá trị như bảng 1 dưới 
đây: 
Bảng 1. Bảng các tham số TP (True Possitive), TN (True Negative), FP (False Possitive), FN (False Negative) 
Ảnh bàn tay tách được thực tế 
Vùng bàn tay Vùng ngoài bàn tay 
Ảnh Ground True 
Vùng bàn tay TP FP 
Vùng ngoài bàn tay FN TN 
Sau khi có được các tham số TP, TN, FP, FN trên cho mỗi khung hình, chúng tôi tiến hành tính toán các tham số của 
sensitivity và speciticity công thức sau: 
 (3) 
 (4) 
Sau đó, tính trung bình các kết quả cặp tham số trên và vẽ đường cong ROC trong đó giá trị trục hoành là sensitivity và 
trục tung là 1-speciticity. Một phương pháp trừ nền tốt khi cả giá trị Sensitivity và Specivity gần sát với 1. Kết quả 
tính trung bình các giá trị và vẽ đường cong ROC thu được như hình 9 như sau: 
Hình 10. Đồ thị đường cong ROC 
Với bộ tham số thực hiện thì giá trị đạt được kết quả được xem là tốt nhất đó là giá trị area = 0,035. Và với bộ tham số 
này, kết quả tách tay thu được ổn định hơn, đạt được kết quả tách tay tốt hơn so với phương pháp chỉ sử dụng ảnh 
RGB truyền thồng. Với phương pháp tách tay chỉ sử dụng ảnh RGB như trước đây gặp rất nhiều khó khăn với bài toán 
điều kiện chiếu sáng thay đổi, do bóng của người hoặc điều kiện nền phức tạp và nền thay đổi. 
Đoàn Thị Hương Giang, Vũ Hải, Trần Thị Thanh Hải 7 
IV. THẢO LUẬN VÀ KẾT LUẬN 
Bài báo này trình bày về việc khai thác dữ liệu ảnh độ sâu từ Kinect: chúng tôi phân tích lỗi và một số phương pháp 
sửa lỗi ảnh độ sâu của Kinect. Chúng tôi đề xuất phương pháp tách bàn tay khỏi nền sử dụng dữ liệu ảnh độ sâu đã 
được hiệu chỉnh trước đó. Phương pháp tách mà chúng tôi đề xuất tương đối đơn giản, nhanh chóng và rất hiệu quả khi 
chúng tôi tiến hành thử nghiệm trên một số bộ cơ sở dữ liệu có sẵn. Trong thời gian tới, chúng tôi sẽ tiếp tục nghiên 
cứu và cải tiến, cũng như kết hợp với ảnh màu để có thể triển khai bài toán nhận dạng cử chỉ động của tay sử dụng 
Kinect. 
V. TÀI LIỆU THAM KHẢO 
[1] Kinect:  
[2] Kinect calibration.  index.php/Research/KinectCalibration. 
[3] Libfreenect.  
[4] Microsoft Kinect for Windows.  
[5] Fabrizio Pedersoli, Nicola Adami, Sergio Benini, Riccardo Leonardi, “XKin - eXtendable Hand Pose and Gesture 
Recognition Library for Kinect”, Department of Information Engineering University of Brescia Brescia, Italy, 
2013. 
[6] Hirotake Yamazoe, Hitoshi Habe, Ikuhisa Mitsugami, and Yasushi Yagi, “Easy Depth Sensor Calibration”, In the 
Proceeding of the 21st International Conference on Pattern Recognition (ICPR 2012) 
[7] D. Herrera C., J. Kannala, and J. Heikkila. Joint depth and color camera calibration with distortion correction. 
IEEE Trans. Pattern Analysis and Machine Intelligence, 
[8] Ahmed Elgammal, “Figure-ground segmentation - pixel-based”, Visual Analysis of Humans, Springer, 2011, pp. 
31-51 
[9] K. Koshelham, S.O. Elberink, “Accuracy and resolution of Kinect depth data for indoor mapping applications”, 
Sensors 2012 
[10] J. Kramer et al. “Hacking the Kinect”, Apress 2012 
[11] Mao Ye et al., “A Survey on Human Motion Analysis from Depth Data”, Time-of-Flight and Depth Imaging. 
Sensors, Algorithms, and Applications, LNCS 8200, pp. 149-187, 2013 
[12] NGUYEN Van Toi et al. “Background Subtraction with KINECT data: An Efficient Combination RGB and 
Depth”, The first NAFOSTED Conference on Information and Computer Science (NICS 2014), pp 160--169, 
Hanoi, March 2014, 
[13] Caroline Rougier et al., “Fall Detection from Depth Map Video Sequences”, ICOST 2011, LNCS 6719, pp. 121–
128, 2011 
[14] R. Mojtahedzaded, “Robot Obstacle Avoidance using the Kinect”, Master of Science Thesis, ETH, Sweden, 2011 
[15] TRAN Thi Thanh Hai, LE Thi Lan, MOREL Jérémy , "An analysis on human fall detection using skeleton from 
Microsoft Kinect", ICCE 2014 
ULTILIZING DEPTH IMAGE FROM KINECT SENSOR: 
ERROR ANALYSIS AND ITS APPLICATIONS 
Doan Thi Huong Giang 
1,2
, Vu Hai
1
, Tran Thi Thanh Hai
1
1 
International Research Institute MICA, HUST 
CNRS/UMI 2954 - Grenoble INP, Hanoi University of Science and Technology 
2
Industrial Vocational College Hanoi 
huong-giang.doan@mica.edu.vn, hai.vu@mica.edu.vn , thanh-hai.tran@mica.edu.vn 
ABSTRACT— Microsoft (MS) Kinect widely used in machine vision applications: interactive robotics, navigation robot... 
Kinect device, which is different from the expensive time-of-flight camera, is low cost and the ability of both depth and RGB data 
acquisition. However, Kinect is designed closedly in both hardware and software, thereby developing Kinect applications still has 
some troubles such as: no correspondence between depth and RGB image coordinates, noise and measurement errors in depth 
image. In this paper, we propose some solutions for these and create a platform to develop applications on Kinect. First, the Kinect 
hardware and the Kinect support libraries, especially OpenKinect are introduced. Next, we present the calibration, distortion 
correction, fitting methods for color and depth image. Exploiting depth information is one of the strength of Kinect sensors, we will 
present a background substraction method for depth image, applied to detect hand gestures and support for later identification 
problem. The experimental results shows that it overcomes to other traditional methods in background substraction. 

File đính kèm:

  • pdfkhai_thac_du_lieu_anh_do_sau_tu_cam_bien_kinect_sua_loi_va_u.pdf