2.2.582 Như đã đề cập trong chương 1 trước đó, thiết bị ToF bắt đầu nóng lên ngay
sau khi được bật lên. Nhiệt độ của thiết bị tăng dần cho đến khi ổn định sau một khoảng thời gian ngắn. Quá trình xác định độ sâu không ổn định trong giai đoạn khởi động này, sai số lên đến vài centimet. Mục đích của thí nghiệm này là xác định mức tăng nhiệt độ ảnh hưởng đến các phép đo và xác định khoảng thời gian để thiết bị Kinect khởi động cũng như để cho các phép đo ổn định.
2.1.1. Mô tả thí nghiệm
2.2.583 Trong thí nghiệm này, một đối tượng đứng yên với khoảng cách cố
định được
chụp ảnh trong một khoảng thời gian cụ thể. Chỉ quan sát sự thay đổi thời gian của các phép đo khoảng cách, vì vậy tất cả các tham số khác phải không đổi trong suốt quá trình. Do đó, đối tượng nghiên cứu được lựa chọn là một phần của bức tường phẳng trong phòng với độ phản xạ không đổi.
2.2.584 Thiết bị Kinect v2 được gắn trên giá cố định như hình 2.1. Điều quan trọng
là thiết bị phải ổn định trong toàn bộ thí nghiệm để không có sai số sinh ra từ các chuyển vị nhỏ nhất có thể có của thiết bị. Một chú ý đối với người thực hiện thí nghiệm là không được di chuyển hoặc đứng lên vì cảm biến phát hiện chuyển động có thể bật và tắt khi có người di chuyển gần đó. Ngoài ra những thay đổi của ánh sáng nền cũng có khả năng gây ra sai số cho các phép đo.
2.2.585 Trong quá trình thí nghiệm, phần mềm Matlab 2016a (64-bit) với
toolbox xử
lý hình ảnh, gói hỗ trợ phần cứng Kinect cho MATLAB, được cài đặt trên máy tính cá nhân có cấu hình cụ thể như sau: CPU hệ thống Intel (R) Core Ĩ7-4790 3,6GHz; RAM 12 GB; Card màn hình Geforce NVIDIA GV-N730D5-2GI. Đồng thời các phần mềm liên quan Microsoft Kinect SDK V2.0_1409 và Microsoft Visual Studio 2015 cũng được cài đặt để hỗ trợ cho việc thu thập và xử lý dữ liệu. Thiết bị Microsoft Kinect được kết nối với máy tính cá nhân thông qua kết nối USB 3.0.
2.2.586 Thí nghiệm được thực hiện trong hai ngày khác nhau và thiết bị được đặt
ở hai vị trí khác nhau. Ngày đầu tiên Kinect v2 được đặt ở khoảng cách 1,5m và ngày thứ hai được đặt ở khoảng cách 3m so với đối tượng thí nghiệm. Thí nghiệm được thực hiện hai lần ở hai khoảng cách khác nhau để đánh giá sự khác
2.2.587
2.2.588 biệt do sự thay đổi về khoảng cách. Do thiết bị Kinect phải luôn ở
nhiệt độ
phòng khi bắt đầu thí nghiệm, nên thí nghiệm được triển khai trong hai ngày khác nhau.
2.2.589 Khoảng thời gian thí nghiệm là hai giờ đồng hồ. Cứ sau một giây, một khung
hình tĩnh được chụp, khung hình này được gọi là khung hình một giây. Khung hình một giây đầu tiên được chụp ở thời điểm khoảng mười giây sau khi thiết bị được khởi động. Nhiệt độ của phòng làm việc khoảng 20°C — 22°C. Các cửa sổ và cửa phòng đóng kín.
2.1.2. Phương pháp thực hiện
2.2.590 Một chương trình Matlab được viết để thu nhận dữ liệu của thiết bị Kinect
v2 chứa tọa độ 3D của hệ tọa độ máy ảnh phục vụ tính toán liên quan đến quá trình thực nghiệm này. Đầu tiên, giá trị độ sâu của điểm cơ sở được thu nhận riêng biệt, đồng thời việc xử lý dữ liệu cho một vùng con llpixel X llpixel của ảnh thu được cũng được thực hiện. Giá trị trung bình của phép đo độ sâu trong vùng con llpixel X llpixel và độ lệch chuẩn của nó được tính toán theo các công thức dưới đây
2.2.591
Hình 2.1: Cấu hình thí nghiệm quá trình khởi động của Kinect v2
dtb
11 11
Ẽ £dij j = 1 i=1
121
(2.1)
2.2.592
2.2.593 trong đó: dtb là giá trị độ sâu trung bình; dij là giá trị độ sâu của điểm
ảnh có
tọa độ i, j; ơd là độ lệch chuẩn.
2.2.594 Thuật toán 2.1 sử dụng phép chuyển đổi tọa độ giữa vị trí điểm cơ sở cũng
như các điểm ảnh trong vùng con 11pixel X 11pixel trên ảnh độ sâu và vị trí tương ứng của chúng trên hệ tọa độ máy ảnh. Qua đó, một chương trình Matlab sẽ được viết để thu nhận dữ liệu đồng thời cho giá trị độ sâu của điểm cơ sở và giá trị độ sâu trung bình của các điểm ảnh trong vùng con 11pixel X 11pixel và được mô tả trong phụ lục 2.1. Ngoài ra, một chương trình Matlab khác cũng sẽ được viết để xử lý dữ liệu cho thí nghiệm này.
2.2.595 Thuật toán 2.1 Thu nhận thông tin độ sâu 2.2.596 INPUT : h1: Ảnh độ sâu
2.2.597 OUTPUT: p0: Độ sâu của điểm cơ sở, pc: Độ sâu trung bình của các
điểm ảnh
trong vùng con 11pixel X 11pixel 2.2.598
1 2.2.599 Kin2(color'' depth'); {Lấy ảnh độ sâu}
2.2.6002.2.601 while True do 2.2.602
3 2.2.603 if time < 7200 then 2.2.604
4 2.2.605 x = 256pixel,y = 212pixel; {Lấy tọa độ điểm cơ sở của ảnh độ sâu}
2.2.606
5 2.2.607 p0 = k2.mapDepthPơnts2Camera([xy]); {Độ sâu của điểm cơ sở trong
2.2.6082.2.609 hệ tọa độ máy ảnh}
2.2.6102.2.611 for m ^ 1 to 11 do 2.2.612
7 2.2.613 for n ^ 1 to 11 do 2.2.614
8 2.2.615 tg = k2.marpDerpthPoints2Camera([mn]);
2.2.616 2.2.617 end for 2.2.618
1 2.2.619 end for{Độ sâu của các điểm trong vùng con 11pixel X 11pixel} 2.2.620
1 2.2.621 pc = mean(tg); {Độ sâu trung bình của vùng con 11pixel X 11pixel trong
2.2.6222.2.623 hệ tọa độ máy ảnh}
2.2.6242.2.625 else 2.2.626
1 2.2.627 break; {Dừng chương trình}
2.2.6282.2.629 end if 2.2.630
1 2.2.6322.2.631 end while 2.1.3. Kết quả và đánh giá
2.2.633 Sau khi kết thúc hai giờ thí nghiệm đầu tiên với vị trí tham chiếu là 1,5m,
kết quả của phép đo độ sâu được minh họa trong hình 2.2, trong đó cả hai giá trị độ sâu điểm cơ sở và trung bình của vùng con llpixel X llpixel đều được vẽ
ad =
Ế E (di-dtb)2
j = 1 i=1
121 (2.2)
trong cùng một hình. Thí nghiệm này cho phép thiết lập giá trị của các phép đo độ sâu và độ lệch chuẩn của giá trị độ sâu vùng con llpixel X llpixel như là các
2.2.634
2.2.635 hàm theo thời gian. Độ lệch chuẩn của phép đo độ sâu trung bình trong vùng
con llpixel X llpixel theo khung hình một giây được thể hiện trong hình 2.3.
2.2.636 Đúng như mong đợi, đường cong kết quả của thí nghiệm gần giống với các
kết quả đã công bố trước đó trong các tài liệu [26, 48]. Rõ ràng từ các số liệu cho thấy khi bắt đầu thí nghiệm, Kinect v2 chưa đạt được nhiệt độ ổn định, các giá trị độ sâu bắt đầu tăng ngay lập tức sau khi nguồn điện được bật. Trong hình 2.2, phần đầu của đồ thị cho thấy độ lệch so với giá trị tham chiếu của các phép đo đó là khoảng 5mm. Ở thời điểm khoảng hai mươi phút, đường cong đột nhiên bắt đầu hạ xuống trong một thời gian, sau đó nó tăng dần trở lại cho đến khi tiệm cận với giá trị tham chiếu ở thời điểm khoảng bảy năm phút. Sự tăng đột biến được gây ra bởi quạt làm mát, dường như luôn bắt đầu cùng một
2.2.637 2.2.638
2.2.639 Hình 2.3: Độ lệch chuẩn của độ sâu trung bình vùng con llpixel X
llpixel ở vị
trí cách tường 1,5m
Hình 2.2: Kết quả phép đo độ sâu ở vị trí cách tường 1,5m
2.2
2
1.8
£ 1.4
<©■
Q 1.2 (1.6
0.8
0.6 1000 2000 3000 4000 5000 6000 7000
Thời gian (s)
2.2.640 lúc. Sau bảy năm phút, các giá trị độ sâu điểm cơ sở dao động trong
phạm vi
±3mm và giá trị độ sâu trung bình của vùng con 11pixel X 11pixel trong phạm vi ±1,3mm so với giá trị trung bình đo được trong thời gian hai giờ.
2.2.641 Trong hình 2.3, giá trị độ lệch chuẩn theo từng khung hình một giây
dao động
quanh vị trí 1.3mm. Sự dao động của độ lệch chuẩn này không phụ thuộc vào quá trình khởi động của thiết bị Kinect v2, cũng như sự vận hành của quạt làm mát tại thời điểm hai mươi phút sau khi thiết bị được khởi động.
2.2.642 Như biểu diễn trong hình 2. 4, các phép đo độ sâu của điểm cơ sở
trong thí
nghiệm này tuân theo phân phối chuẩn Gauss. Đỉnh của phân phối gần với giá trị độ sâu tham chiếu từ thiết bị đến đối tượng nghiên cứu.
2.2.643
1800 |-
2.2.644
1600 -
2.2.645
1400 -
2.2.646
1200 -
2.2.647
o
2.2.648
Ệ 1000 -
2.2.649
*8
2.2.650
s 800 - Cữ
2.2.651 600 - 2.2.652 400 - 2.2.653 200 - 2.2.654 0 2.2.655 1.492
2.2.656 Hình 2.4: Phân bố giá trị độ sâu của điểm cơ sở ở vị trí cách tường 1,5m
2.2.657 Hình 2.5 biểu diễn ảnh độ sâu với thang màu thể hiện giá trị độ sâu của một
khung hình một giây trong thí nghiệm ở khoảng cách 1,5m so với tường. Ta có thể quan sát được nhiễu xuất hiện ở các góc của ảnh độ sâu trong hình 2.5.
Giá trị độ sâu (m)
1.508
Nhiễu này gây ra sai số trong phép đo độ sâu của quá trình số hóa bề mặt 3D.
2.2.658 Tiếp theo, kết quả của thí nghiệm ở khoảng cách 3m từ thiết bị Kinect v2
tới tường được xem xét. Các kết quả thu được khác một chút so với thí nghiệm ở khoảng cách 1,5m. Vì tốc độ khởi động của cảm biến phụ thuộc vào lượng photon nhận được, ánh sáng phản xạ ít hơn từ các vật ở xa hơn sẽ kéo dài thời gian khởi động. Tương tự như thí nghiệm trước, thí nghiệm này cũng cho phép thiết lập giá trị của các phép đo độ sâu và độ lệch chuẩn của giá trị độ sâu vùng con 11pixel X 11pixel như là các hàm theo thời gian. Các dữ liệu giá trị độ sâu của thí nghiệm ở khoảng cách 3m được hiển thị trong hình 2.6. Độ lệch chuẩn của phép đo độ sâu trung bình trong vùng con 11pixel X 11pixel được biểu diễn trong hình 2.7.
2.2.659 Không giống như kết quả của thí nghiệm trước, trong hai mươi phút đầu tiên,
cả hai giá trị đo thay đổi khá lớn khoảng 10%. Giá trị độ sâu lớn nhất ở thời điểm khoảng 16 phút, sau đó giảm rất nhanh. Điều này được lý giải bởi nguyên
2.2.660
2.2.661 nhân về nhiệt độ thay đổi khi thiết bị Kinect v2 mới khởi động. Giá trị
độ sâu
giảm rất nhanh là do hệ thống làm mát của thiết bị khởi động. Trong giai đoạn tiếp theo, Kinect v2 hoạt động gần như theo cùng một cách so với thí nghiệm ở khoảng cách 1,5m. Các giá trị giảm nhẹ, sau đó các giá trị lại bắt đầu tăng chậm cho đến khoảng sáu mươi phút thì ổn định. Các giá trị đo độ sâu ổn định dao động trong khoảng ±5mm đối với điểm cơ sở và ±2mm đối với trung bình
2.2.662 2.2.6632.2.3
Ảnh độ sâu (mm)
- 3500
- 3000
- 2500
Hình 2.5: Ảnh độ sâu của một khung hình tại vị trí cách tường 1,5m
4500
4000
2000
1500
1000
Hình 2.6: Kết quả phép đo độ sâu ở vị trí cách tường 3m
1 33.5
£c
■<0 Ị 2.5 4=9
ôỊ>
2.2.666 Tương tự như thí nghiệm trên, các giá trị độ sâu đo được của điểm cơ sở
trong thí nghiệm này cũng tuân theo phân phối chuẩn Gauss, mô tả trong hình 2.8. Đỉnh của phân phối cũng gần với giá trị độ sâu tham chiếu 3m từ thiết bị Kinect v2 đến tường.
2.2.667 Hình 2.9 hiển thị ảnh độ sâu với thang màu thể hiện giá trị độ sâu của một
khung hình một giây trong thí nghiệm ở khoảng cách 3m so với tường. Trong hình này, ảnh hưởng của nhiễu rõ ràng hơn, theo đúng lý thuyết đã trình bày trong chương 1. Sai số phản xạ đa đường cũng xuất hiện ở giao tuyến của các đối tượng trong ảnh độ sâu thu được. Do đó, nâng cao chất lượng ảnh độ sâu
2.2.668
2.2.669 Hình 2.8: Phân bố giá trị độ sâu của điểm cơ sở ở vị trí cách tường 3m2.2.670
2.2.671
2.2.6722.2.673 Hình 2.9: Ảnh độ sâu của một khung hình tại vị trí cách tường 3m 2.2.674 nhằm giảm ảnh hưởng của nhiễu tới phép đo độ sâu trong quá trình số
hóa bề
mặt là rất cần thiết và sẽ được thực hiện trong chương 3.
2.2.675 Qua các thí nghiệm trong phần 2.1 này cho thấy việc tính trung bình
giá trị
độ sâu cho kết quả tốt hơn, vì độ lệch chuẩn của khoảng cách trung bình nhỏ hơn đáng kể so với các giá trị khoảng cách của điểm cơ sở tương ứng. Các thí nghiệm này được thực hiện ở nhiệt độ không đổi, kết quả thu được khá rõ ràng.
Tuy nhiên, trong môi trường ngoài trời cũng có các yếu tố ảnh hưởng đến nhiệt độ, ví dụ như gió có khả năng làm mát thiết bị hay sức nóng của mặt trời gây ra sự nóng lên của thiết bị. Do đó, một hướng tiếp theo thú vị cho các thí nghiệm này sẽ là nghiên cứu quá trình đo lường trong điều kiện động để thấy rõ thiết bị Kinect v2 có thể thích ứng tốt như thế nào với nhiệt độ thay đổi.