Tải bản đầy đủ (.pdf) (63 trang)

Tương tác trực quan giữa người và máy tính bằng cảm biến quang

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.84 MB, 63 trang )

ĐẠI HỌC LẠC HỒNG
KHOA CÔNG NGHỆ THÔNG TIN






BÁO CÁO
NGHIÊN CỨU KHOA HỌC




ĐỀ TÀI:

TƯƠNG TÁC TRỰC QUAN
GIỮA NGƯỜI VÀ MÁY TÍNH BẰNG
CẢM BIẾN QUANG






NGUYỄN THÁI NHÂN
NGUYỄN XUÂN THẢO





BIÊN HÒA, THÁNG 12/2013
ĐẠI HỌC LẠC HỒNG
KHOA CÔNG NGHỆ THÔNG TIN






BÁO CÁO
NGHIÊN CỨU KHOA HỌC




ĐỀ TÀI:

TƯƠNG TÁC TRỰC QUAN
GIỮA NGƯỜI VÀ MÁY TÍNH BẰNG
CẢM BIẾN QUANG




SVTH : NGUYỄN THÁI NHÂN
NGUYỄN XUÂN THẢO
GVHD: ThS. NGUYỄN PHÁT NHỰT






BIÊN HÒA, THÁNG 12/2013




MỤC LỤC
Trang phụ bìa
Lời cảm ơn
Mục lục
Danh mục từ viết tắt
Danh mục hình ảnh
Chương I PHẦN MỞ ĐẦU 1
1.1. Dẫn nhập 1
1.2. Tổng quan tình hình nghiên cứu 2
1.3. Mục tiêu nghiên cứu 6
1.4. Lựa chọn phương pháp nghiên cứu 6
1.5. Đối tượng và phạm vi nghiên cứu 10
1.6. Những mặt tích cực và hạn chế của đề tài 11
1.7. Kết cấu của đề tài 11
Chương II NỘI DUNG THỰC HIỆN 12
2.1. Quy trình thực hiện 12
2.2. Tìm hiểu về thiết bị Camera Kinect 13
2.3. Đồng bộ hóa ảnh 24
2.4. Quét vùng tương tác 25
2.5. Theo dõi khung xương 28
2.6. Theo dõi vùng tương tác và nhận diện thao tác chạm tay 31
2.7. Chuyển thao tác chạm qua tọa độ màn hình máy tính 34
2.8. Xử lý con trỏ Windows 35

2.9. Thiết kế hệ thống 37
2.10. Thử nghiệm chương trình 40
2.11. Tự đánh giá sản phẩm 45
Chương III KẾT LUẬN 48
3.1. Kết quả nghiên cứu 48
3.2. Kết luận 49




3.3. Hướng phát triển 50
Tài liệu tham khảo




DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
Giải thích
API
Application Programming Interface
CMOS
Complementary metal-Oxide-Semiconductor
CL
Code Laboratories
CPU
Central Processing Unit
IR
Infrared
NI

Nature Interface
JNA
Java Native Access
JNI
Java Native Interface
NI
Natural Interaction
OPENNI
Open Natural Interaction
OPENCV
Open Sourse ComPuter Vision
RBG
Red, Green, Blue
SDK
Software Development Kit
SoC
System on chip
TOF
Time Of Flight
3D
3 Dimensional




DANH MỤC HÌNH ẢNH
Hình 1.1: Mô hình mô phỏng hệ thống Ubi 3
Hình 1.2: Sản phẩm Touchless Touch 4
Hình 1.3: Sản phẩm tường tương tác của công ty Vntouch 5
Hình 1.4: Nhận diện bàn tay (OpenNI) 7

Hình 1.5: Mẫu màu da trên bàn tay 8
Hình 1.6: Minh họa về mật độ điểm ảnh trên bàn tay 9
Hình 1.7: Mô phỏng khung xương 10
Hình 2.1: Quy trình thực hiện 12
Hình 2.2: Hình camera Kinect 13
Hình 2.3: Hình cấu tạo của Kinect 14
Hình 2.4: Cấu tạo bên trong Kinect 15
Hình 2.5: Công nghệ xử lý ảnh của PrimeSense 16
Hình 2.6: Giải pháp độc quyền Light Coding của PrimeSense 17
Hình 2.7: Góc chiếu Kinect 20
Hình 2.8: Ảnh độ sâu 20
Hình 2.9: Thông tin các bit lưu trữ độ sâu 21
Hình 2.10: Ví dụ về đo độ sâu 21
Hình 2.11: Đối tượng cơ thể áp dụng cho học máy 22
Hình 2.12: Nhận dạng khung xương từ ảnh độ sâu 23
Hình 2.13: Trục tọa độ khung xương 24
Hình 2.14: Ví dụ minh họa Rectangle kích thước 550x400 26
Hình 2.15: Rectangle trên phần mềm 27
Hình 2.16: Quá trình nhận diện các khớp xương 28
Hình 2.17: Khớp xương trên cơ thể được đánh tên 29
Hình 2.18: Khung xương với 20 khớp xương 29
Hình 2.19: Khung xương với 10 điểm khớp xương 30
Hình 2.20: Mô phỏng cách nhận dạng thao tác chạm 32
Hình 2.21: Kết quả chạm được hiển thị 32




Hình 2.22: Lưu đồ giải thuật 34
Hình 2.23: Minh họa hệ tọa độ màn hình 34

Hình 2.24: Ví dụ minh họa về sự tương phản 35
Hình 2.25: Lưu đồ chức năng chuột 36
Hình 2.26: Mô hình thiết kế bàn tương tác 37
Hình 2.27: Mô hình thiết kế đặt Kinect cố định ở sàn nhà 38
Hình 2.28: Mô hình thiết kế Kinect đặt cố định trên trần nhà 39
Hình 2.29: Màn chiếu che bảng phấn 40
Hình 2.30: Kéo màn chiếu lên 40
Hình 2.31: Viết chữ trên bảng phấn khi máy chiếu vẫn đang chiếu 40
Hình 2.32: Hình nền Windows chiếu lên màn chiếu che bảng phấn 41
Hình 2.33: Chạm tay vào shorcut bài giảng và mở bài giảng 41
Hình 2.34: Chạm tay vào shorcut DEV C++ và hình giao diện chương trình 41
Hình 2.35: Chạm tay vào shorcut Paint và giao diện Paint 42
Hình 3.36: Thanh Taskbar trên đó có 3 chương trình được kích hoạt 42
Hình 2.37: Thao tác chuyển qua Paint 42
Hình 2.38: Màn hình Paint 43
Hình 2.39: Viết chữ trên Paint 43
Hình 2.40: Nhấn nút xóa trên Paint 43
Hình 2.41: Xóa chữ vừa viết trên Paint 44
Hình 2.42: Xóa hết trên Paint 44
Hình 2.43: Nhấn trở về bài giảng 44
Hình 2.44: Quay lại bài giảng 45
Hình 3.1: Điều khiển game Angry Birds 48
Hình 3.2: Chơi game có tính giáo dục dành cho trẻ em 49
Hình 3.3: Mô hình bàn tương tác sử dung cảm biến Kinect 50
Hình 3.4: Tường tương tác 50
1



Chương I

PHẦN MỞ ĐẦU
1.1. Dẫn nhập
Ngày nay các thiết bị cảm ứng đã không còn quá xa lạ, nó ngày càng trở nên
đa dạng và phổ biến. Các sản phẩm màn hình cảm ứng đã được áp dụng rộng rãi
vào nhiều lĩnh vực: giáo dục, y tế, quảng cáo sản phẩm, hội họp… Giúp người dùng
đạt hiệu quả cao trong công việc như giúp giáo viên hướng dẫn trên lớp học đạt kết
quả cao so với phương pháp dạy truyền thống, các cửa hàng hiển thị thông tin sản
phẩm giúp khách khách hàng dễ dàng lựa chọn, còn trong y tế sẽ giúp các bác sĩ có
cái nhìn tổng quát hơn về bệnh nhân. Từ đó mang lại hiệu quả và thu lại nhiều phản
hồi tích cực.
Ở Việt Nam, các sản phẩm với màn hình cảm ứng cũng dần được áp dụng
nhằm nâng cao hiệu quả của công việc. Ví dụ như đã có nhiều trường mầm non tiêu
chuẩn quốc tế áp dụng công nghệ thông tin vào giảng dạy, dẫn đến chất lượng trong
hiệu quả giảng dạy thay đổi một cách đáng kể. Đặc biệt là việc sử dụng “bảng thông
minh” tạo ra sự tương tác hai chiều giữa học sinh và bài giảng, nhằm tối ưu hóa khả
năng phát triển nhận thức, tư duy trong quá trình học tập của người học. Điển hình
một số trường đã tiên phong trong việc sử dụng “bảng thông minh”: Trường mầm
non quốc tế MappleBear Canada, Trường mầm non Hạnh Phúc Tân Bình, Trường
mầm non Quốc tế EQ.
Hạn chế của“bảng thông minh” là giá thành khá cao.Ví dụ giá thành của các
sản phẩm bảng thông minh có thể lên đến hơn vài ngàn USD. Tuy nhiên trước sự
phát triển của công nghệ xử lý ảnh đã mở ra một giải pháp mới giúp người dùng
tương tác, dùng tay chạm lên màn chiếu không cảm ứng để điều khiển máy tính như
màn hình cảm ứng. Và đây cũng là lý do nhóm nghiên cứu “Tương tác trực quan
giữa người và máy tính bằng cảm biến quang” nhằm giúp tiết kiệm chi phí lắp đặt
bảng thông minh mà vẫn đáp ứng được các tính năng của “bảng thông minh” giúp
tương tác điều khiển máy tính trực tiếp trên màn chiếu (Projector).
2




Một số bài toán thực tế như bên dưới cho thấy nếu có một loại màn chiếu
thông minh với giá thành rẻ, sẽ giảm thiểu các bất tiện cho giáo viên cũng như giảm
kinh phí đầu tư bảng phấn cho các cơ sở đào tạo đồng thời loại trừ nguy cơ bệnh
phổi từ việc giáo viên phải hít bụi phấn.
Bài toán 1: Sự mất nhiều thời gian của việc di chuyển liên tục của giáo viên
từ máy tính đến bảng phấn.
Bài toán 2: Sự khó khăn khi bảng phấn bị che khuất bởi màn chiếu.
Bài toán 3: Sự bất tiện khi đang cầm phấn mà muốn điều khiển máy tính.
1.2. Tổng quan tình hình nghiên cứu
1.2.1. Trên thế giới
Hệ thống “Ubi interactive”
Ubi interactive là một công ty thành lập ở Đức đặt trụ sở ở Munich liên kết
với Microsoft để phát triển hệ thống điều khiển cử chỉ trong không gian ba chiều
bằng cảm biến Kinect. Công nghệ này đã gây chú ý trên thế giới và được Microsoft
gọi là tương lai của màn hình kĩ thuật số tại hội nghị Đối Tác Thế Giới năm 2012.
Hệ thống hoạt động nhờ sử dụng cảm biến độ sâu được gắn bên trên máy
chiếu hoặc đính kèm vào màn hình. Cảm biến sẽ nhận diện các thao tác tay của
người dùng, sau đó phần mềm Ubi sẽ phiên dịch hành động của người dùng thành
dòng lệnh của máy tính, sau đó đưa chúng vào các ứng dụng để tương tác. Chính vì
thế, Ubi có thể dùng với hầu như tất cả ứng dụng đang được hiển thị lên màn hình.
Đây là một giải pháp tiết kiệm bởi nó có thể hoạt động với những phần mềm và
phần cứng sẵn có mà không cần phải chỉnh sửa gì nhiều. [14].
3




Hình 1.1: Mô hình mô phỏng hệ thống Ubi
Ưu điểm

- Nhận diện thao tác chạm ngón tay của người dùng.
- Hoạt động ổn định với nhiều ứng dụng trên hệ điều hành.
Khuyết điểm
- Hệ thống vẫn chưa thật sự nhận diện hết được tất cả các thao tác ngón tay
của người dùng.
- Do phải nhận diện các thao tác chạm qua cảm biến nêu sự tương tác giữa
người và máy vẫn có độ trễ nhất định.
- Hệ thống chỉ ổn định trong cự ly gần khi đặt cảm biến Kinect đối diện với
màn chiếu ở khoảng cách 80-150cm.
- Hệ thống không thể nhận dạng được thao tác chạm khi bàn tay bị che khuất
bởi cơ thể người tương tác.
Hệ thống “Touchless Touch”
Hệ thống có tên “Touchless Touch” là sản phẩm sáng tạo của nhà phát triển
ứng dụng RodSmithDev.
4



Hệ thống tương tác với máy tính nhờ thiết bị cảm biến độ sâu được gắn ở góc
màn hình chiếu và cách màn hình 40cm, bằng chân đứng hoặc được đính kèm với
màn hình. Cảm biến nhận diện các hành vi của người dùng và xử lý ở máy tính[13].

Hình 1.2: Sản phẩm Touchless Touch
Ưu điểm
- Hỗ trợ 128 điểm cảm ứng chuẩn.
- Cảm ứng từ 90 – 200 inch nên không gian tương tác khá rộng.
- Hỗ trợ tương tác đa điểm.
Khuyết điểm
- Cần nhiều Kinect, nếu mặt phẳng lớn cần tới bốn Kinect.
- Ứng dụng chỉ chính xác khi Kinect được lắp đúng vị trí, không phù hợp với

các phòng có không gian nhỏ hẹp.
1.2.2. Trong nước
Hệ thống “Tường tương tác” của công ty Vntouch
Phần mềm do kỹ sư Trần Tùng Mậu cùng đội ngũ kỹ sư của công ty
Vntouch- Multitouch Technology Việt Nam đã tạo ra sản phẩm “tường tương tác”
là phương tiện dành cho giải trí và quảng cáo. Tường tương tác gây cảm giác mới
5



lạ, sống động chân thực, nó biến người tham gia thành một phần của thế giới tương
tác.
Một camera hồng ngoại phủ lên màn hình một lớp sóng laser, khi người dùng
chạm tay vào màn hình thì một cảm biến sẽ thu về ảnh bàn tay và xử lý trên máy
tính. Các thông tin thao tác của bàn tay sẽ được chuyển qua các hiệu ứng đồ
họa[15].

Ưu điểm
- Là một sản phẩm phục vụ cho mục đích quảng cáo nên có nhiều hiệu ứng
đẹp mắt, kích thước màn hình tương tác rộng.
- Tại một thời điểm có thể nhận diện được nhiều thao tác chạm của nhiều
người tương tác, tạo ra các hiệu ứng đồ họa đẹp mắt.
Khuyết điểm
- Vì đây là một sản phẩm phục vụ cho mục đích quảng cáo tiếp thị nên các
thao tác chạm vẫn chưa thật sự chính xác và độ trễ vẫn còn cao.
- Khâu xử lý còn phức tạp, sử dụng nhiều thiết bị để nhận diện thao chạm của
người dùng.
- Hệ thống chỉ áp dụng cho một mục đích quảng cáo sản phẩm.
- Sản phẩm chưa có nhiều chức năng được xử lý trên máy tính.
Cho đến nay, những công trình được đề cập phía trên đều chưa có một công

bố chính thức nào về kết quả, chỉ nêu ra những kết quả đạt được không nêu những
Hình 1.3: Sản phẩm tường tương tác của công ty Vntouch
6



phần còn hạn chế. Chương trình chỉ có thể thực hiện được những chức năng cơ bản
thông qua việc nhận diện thao tác chạm tay lên mặt phẳng tương tác. Bên cạnh đó,
hầu hết các dự án trên vẫn đang còn trong quá trình phát triển vẫn chưa hoàn thiện
và còn gặp nhiều vấn đề cần phải giải quyết. Qua đó nhóm tác giải muốn nghiên
cứu, hướng tới một chương trình có thể khắc phục được những khuyết điểm của các
hệ thống trên như: nhận dạng tốt hơn và nhanh hơn, thực hiện được nhiều chức
năng Tìm cách giải quyết bài toán làm cách nào có thể sử dụng màn chiếu thay
thế hoàn toàn các thao tác trên bảng phấn như viết bằng tay, bôi xóa bằng tay một
cách linh hoạt.
1.3. Mục tiêu nghiên cứu
Xây dựng một phần mềm chạy trên máy tính có khả năng thu nhận hình ảnh
bàn tay của giáo viên thao tác trên màn chiếu, từ đó thông qua kỹ thuật xử lý ảnh để
hiển thị lên màn chiếu những đường nét được tạo ra từ hoạt động của bàn tay. Để
thực hiện điều này cần:
- Tìm hiểu về cách hoạt động và chức năng của bảng thông minh
(SmartBoard).
- Tìm hiểu về thiết bị Kinect và các bộ thư viện hỗ trợ lập trình.
- Nghiên cứu thuật toán, phương pháp nhận dạng thao tác chạm trên mặt
phẳng tương tác.
- Khoanh vùng cần tương tác và chuyển sang tọa độ màn hình máy tính.
- Chuyển các thao tác chạm thành các sự kiện con trỏ chuột trái và chuột
phải trên hệ điều hành Windows.
1.4. Lựa chọn phương pháp nghiên cứu
1.4.1. Nhận diện bàn tay OpenNI(Hand Tracking)

Phương pháp này thông qua Kinect sẽ tách ngưỡng người qua ảnh độ sâu rồi
từ đó khoanh vùng rồi nhận diện hai bàn tay[5].
7




Hình 1.4: Nhận diện bàn tay (OpenNI)
Ưu điểm
- Nhận diện được và lấy giá trị bàn tay.
- Sử dụng ở khoảng cách chấp nhận được.
Khuyết điểm
- Ở khoảng cách xa trên 1.4 mét không nhận diện tốt.
- Chỉ hỗ trợ khi bàn tay để đối diện Kinect.
- Thời gian nhận diện và theo dõi các thao tác chậm hơn so với thời gian thực.
1.4.2. Phát hiện dựa vào màu da
Phát hiện màu da là quá trình của việc tìm kiếm các pixel có thông số trùng
với thông số của màu da trong ảnh hoặc video. Quá trình này thường được sử dụng
như là một bước tiền xử lý để tìm thấy các khu vực có sự xuất hiện khuôn mặt hoặc
tay chân con người trong hình ảnh. Phân loại màu da là xác định một ranh giới
quyết định lớp màu da trong không gian màu dựa trên một cơ sở dữ liệu màu da cụ
thể. Trong phương pháp, nhóm nghiên cứu xác định màu da dựa vào các thông số
R, G, B để tính toán các số liệu cụ thể[3]. Hình 1.5 cho thấy mỗi điều kiện khác
nhau thì hình ảnh màu thu được hoàn toàn khác nhau. Ví dụ 1.5(a) môi trường ánh
8



sáng bình thường, 1.5(b) môi trường ánh sáng mạnh, 1.5(c) môi trường ánh sáng
yếu.


Hình 1.5: Mẫu màu da trên bàn tay được chụp trong 3 môi trường với điều
kiện ánh sáng khác nhau
Ưu điểm
- Phát hiện chạm, theo dõi được cử chỉ của bàn tay.
- Đây là một phương phổ biến được áp dụng ở nhiều đề tài nghiên cứu.
Khuyết điểm
- Đây vẫn còn là xử lý ảnh phức tạp nên phát hiện và xử lý không ổn định.
- Vì đây là phương pháp xử lý trên điểm ảnh nên cần có ảnh bàn tay với kích
thước đủ lớn để có thể nhận dạng được.
- Phụ thuộc rất nhiều vào điều kiện môi trường xung quanh.
1.4.3. Xử lý điểm ảnh trong Kinect
Đầu tiên ta sẽ lưu vào mảng giá trị độ sâu của bàn tay thông qua công thức
tính khoảng cách của Kinect rồi so sánh các giá trị độ sâu điểm ảnh trên bàn tay so
với giá trị vừa được lưu trữ trên toàn mảng đã lưu từ trước nếu thỏa điều kiện thì
xác nhận tay đã chạm mặt phẳng[6].
9




Hình 1.6: Minh họa về mật độ điểm ảnh trên bàn tay
Ưu điểm
- Nhận diện nhanh, đáp ứng thời gian thực.
- Có thể thao tác trước mặt và sau lưng.
Khuyết điểm
- Do phụ thuộc vào các tia hồng ngoại để đo đạc độ sâu nên cảm biến bị ảnh
hưởng bởi môi trường có nhiều tia hồng ngoại (như ánh sáng mặt trời) sẽ dẫn
đến thu nhận bản đồ độ sâu không ổn định.
1.4.4. Phương pháp theo dõi khung xương SDK(Skeleton Tracking)

Cảm biến Kinect phát hiện ra khung xương hình ảnh toàn bộ cơ thể người.
Sau khi có khung xương của toàn thể cơ thể người, chương trình cần thực hiện rút
trích phần khớp xương của hình ảnh bàn tay cho các bài toán đã đặt ra ở phần dẫn
nhập. Từ đó lấy ra các giá trị độ sâu hình ảnh tay rồi so sánh với giá trị trên toàn
mặt phẳng hay các điểm lân cận bàn tay đã thu vào một mảng từ trước, nếu thỏa
mãn điều kiện đặt ra là trong hai ngưỡng Max và Min thì ghi nhận tay đã chạm vào
mặt phẳng[4].
10




Hình 1.7: Mô phỏng khung xương
Ưu điểm
- Phát hiện khung xương rất nhạy và nhanh.
- Nhận diện được nhiều người, phù hợp cho đa chạm.
- Phù hợp với các ứng dụng liên quan đến nhận diện con người
Khuyết điểm
- Dễ bị mất các điểm trên bàn tay dẫn đến tọa độ chỉ tương đối chính xác.
Qua những phương pháp nghiên cứu trên cho thấy sử dụng cảm biến Kinect
có tính khả thi cao trong việc giải quyết vấn đề mà nhóm đặt ra. Với sự phát triển
của công nghệ hiện nay thì tốc độ xử lý không còn là vấn đề khi dùng cảm biến
Kinect. Và việc lựa chọn, tận dụng sức mạnh của cảm biến Kinect giúp nhóm tác
giả sẽ giảm bớt công việc tính toán và xác định các thao tác chạm tay thông việc sử
dụng dữ liệu khung xương từ cảm biến.
1.5. Đối tượng và phạm vi nghiên cứu
1.5.1. Đối tượng nghiên cứu
Giáo viên giảng dạy và các phòng học có màn chiếu (projector).
1.5.2. Phạm vi nghiên cứu
Xây dựng chương trình giúp cho việc tương tác với màn chiếu dễ dàng hơn

phù hợp với công việc giảng dạy.
11



1.6. Những mặt tích cực và hạn chế của đề tài
1.6.1. Tích cực
Việc gộp các chức năng của một màn chiếu thông thường với các chức năng
của bảng phấn thành một loại bảng thông minh là một phương pháp mới biến một
màn chiếu cứng nhắc thành một màn hình cảm ứng tiện lợi và an toàn với sự hỗ trợ
của cảm biến Kinect.
1.6.2. Hạn chế
Do giới hạn của Kinect nên để việc tương tác có độ chính xác cao thì Kinect
được đặt cách màn chiếu trong vòng 1,7 mét trở xuống.
1.7. Kết cấu của đề tài
Báo cáo gồm ba phần chính: phần mở đầu, phần nội dung và phần kết luận.
Chương I: Phần mở đầu
- Nêu lý do chọn đề tài, tìm hiểu các đề tài có liên quan ở trong và
ngoài nước để xem các ưu và nhược điểm, từ đó đưa ra mục tiêu
nghiên cứu và phương pháp.
Chương II: Nội dung thực hiện
- Tìm hiểu về Kinect, cách cấu tạo, nguyên lý hoạt động, các công nghệ
bên trong và thư viện hỗ trợ để đưa ra cách xác định tay chạm mặt
phẳng.
- Xác định vùng cần tương tác và tính toán chuyển hệ tọa độ sao cho
phù hợp với tọa độ trên màn hình máy tính.
- Thử nghiệm chương trình và đưa ra số liệu khảo sát.
Chương III: Kết luận
- So sánh kết quả thực hiện với mục tiêu đề ra.
- Kết luận chương trình.

12



Chương II: NỘI DUNG THỰC HIỆN
2.1. Quy trình thực hiện
Bước 1: Tìm hiểu về thiết bị Kinect, nguyên lý hoạt động và các công nghệ bên
trong Kinect.
Bước 2: Đồng bộ hóa ảnh màu và ảnh độ sâu. Việc tính toán được thực hiện ở ảnh
độ sâu nhưng ảnh màu cung cấp hình ảnh trực quan hơn giúp người dùng dễ dàng
quan sát và chọn vùng tương tác.
Bước 3: Quét vùng cần tương tác trên màn chiếu.

Hình 2.1: Quy trình thực hiện
Bước 4: Theo dõi khung xương con người để thực hiện rút trích khớp xương bàn
tay.
Bước 5: Theo dõi vùng tương tác và nhận diện các thao tác chạm tay.
13



Bước 6: Chuyển thao tác chạm tay từ tọa độ trong vùng chọn tương tác sang tọa độ
màn hình máy tính.
Bước 7: Xử lý các sự kiện con trỏ chuột Windows.
2.2. Tìm hiểu về thiết bị Camera Kinect
2.2.1. Sự ra đời và phát triển của Kinect

Hình 2.2: Hình camera Kinect
Kinect lần đầu tiên được công bố vào ngày 01/06/2009 dưới tên mã “Project
Natal” theo tên thành phố của người thực hiện dự án. Ở hội nghị thường niên E3,

Kinect ban đầu được Microsoft phát triển dành riêng cho hệ máy Xbox 360 mang
đến trải nghiệm game sống động hơn, sau này được phát triển để viết các ứng dụng
cần sự tương tác [2].
Sản phẩm này được bán lần đầu tiên tại Bắc Mỹ vào tháng 11 năm 2010, tiếp
theo là Úc, New Zealand, Singapore, Nhật Bản và nhanh chóng xuất hiện ở khắp
các thị trường trên toàn thế giới. Kinect là một thiết bị giải trí tiên tiến, được
Microsoft phát triển và là tiên phong trong lĩnh vực thực tế ảo. Sau đó, còn gây sốt
và trở thành một trong những thiết bị bán chạy nhất thế giới vì giá thành khá rẻ
(130USD) mà có khả năng cung cấp thông tin 3D với chất lượng chấp nhận
được[1].
Kinect là một thành tựu có ứng dụng rộng rãi không chỉ dành riêng cho chơi
game mà còn nhiều ứng dụng khác trong xử lý ảnh như: theo dõi cử chỉ con người
và viết ứng dụng trả lời các cử chỉ đó, có thể sử dụng để điều khiển robot, sử dụng
bản đồ độ sâu để viết các ứng dụng liên quan, xây dựng lên các ứng dụng mô hình
14



3D, có thể nén kích thước ảnh màu nhỏ hơn nhiều so với kích thước ban đầu để
phục vụ cho đời sống cũng trong giáo dục, y tế.
2.2.2. Các thành phần chính của Kinect

Hình 2.3: Hình cấu tạo của Kinect
Thiết bị cảm biến Kinect là một thanh ngang kết nối với trục nhỏ bằng một
trục cơ đứng. Thiết bị bao gồm hai camera một cảm biến IR, microphone nhận diện
giọng nói và một số bộ phận phụ được vận hành bởi một phần mềm độc quyền của
Microsoft và công nghệ 3D camera của hãng PrimeSence giúp thiết bị có thể bắt
chuyển động 3D toàn cơ thể, nhận diện khuôn mặt, nhận diện giọng nói[2].
Các thành phần bên trong Kinect gồm có: RGB camera, Depth camera (3D
Depth Sensors), động cơ điều khiển góc (Motorized Tilt), dãy microphone (Multi-

array Mic), chip PS 1080 của Prime Sensor.
- RBG camera: Là một camera thu về ảnh màu có tốc độ 30 fps/s.
- Depth camera: Phát ra tia hồng ngoại là một luồng ánh sáng có cấu trúc
giúp đo đạc độ sâu dựa theo cấu trúc được phản xạ lại.
- Motorized Tilt: Giúp điều khiển nâng lên hạ xuống góc Kinect để có một
góc nhìn tốt nhất.
15



- Muti-array Mic: Dùng để hỗ trợ nhận diện giọng nói gồm nhiều thứ
tiếng được hỗ trợ, giúp điều khiển thiết bị.
- Prime Sensor: Dùng để xử lý trực tiếp độ sâu và kết quả thu về nhanh,
chính xác và ổn định.

Hình 2.4: Cấu tạo bên trong Kinect
2.2.3. Các công nghệ bên trong của Kinect
2.2.3.1. Công nghệ PrimeSensor
Công nghệ PrimeSensor là công nghệ của công ty PrimeSense. Đây là giải
pháp công nghệ dành cho các cảm biến kỹ thuật số cho phép thiết bị khả năng quan
sát không gian 3 chiều (3D), nhưng dữ liệu hình ảnh lại được xử lý ở cảm biến
CMOS. Công nghệ này có khả năng ghi nhận độ sâu, ảnh màu và cả âm thanh xung
quanh thành một dòng hình ảnh đồng bộ giống như thông tin con người thu được từ
các giác quan. Những dữ liệu sau đó được đồng bộ hóa và biên dịch thành những
thông tin: xác định cơ thể của một người, nhận dạng các hành vi của người đó, phân
loại các đối tượng, vị trí các bức tường và sàn nhà[11].
16




Hình 2.5: Công nghệ xử lý ảnh của PrimeSense


2.2.3.2. System on a chip (SoC)
Đây là giải pháp, một hệ thống điện tử được xây dựng trên một đế silicon với
ý tưởng sẽ tích hợp tất cả các thành phần của một hệ thống máy tính lên trên một vi
mạch đơn. Một hệ thống điển hình bao gồm một loạt các mạch tích hợp cho phép
thực hiện các nhiệm vụ khác nhau. Hệ thống có thế tích hợp: bộ vi xử lý
(microprocessor), bộ nhớ (RAM,ROM), khối truyền thông nối tiếp UART, các cổng
song song. Công nghệ System on a chip (SoC) của PrimeSense sử dụng cảm biến
hình ảnh CMOS và PrimeSense Soc’s Carmine (PS1080) thực hiện các thuật toán
phức tạp tính toán song song để giải mã ánh sáng nhận được trong không gian tạo ra
một bản đồ độ sâu đồng bộ với hình ảnh màu sắc. Dữ liệu đồng bộ về video màu, độ
sâu và dòng âm thanh được truyền qua một cổng kết nối USB 2.0. Hệ thống (SoC)
yêu cầu một cấu hình CPU tối thiểu để cho các thuật toán[7].
2.2.3.3. PrimeSense Light Coding
17



Giải pháp Light Coding của công ty PrimeSense là giải pháp công nghệ cho
cảm biến độ sâu có khả năng thu về độ sâu ba chiều (3D) với độ chính xác cao. Về
nguyên tắc, Light Coding hoạt động bằng cách mã hóa vùng không gian quan sát
thông qua cảm biến tiêu chuẩn off-the-shelf CMOS – camera phát ra những tia hồng
ngoại “vô hình” với mắt người.

Hình 2.6: Giải pháp độc quyền Light Coding của PrimeSense
Giải pháp đã tạo ra một sự bước ngoặc lớn xây dựng một hệ thống đa cảm
biến, cung cấp một dòng hình ảnh đồng bộ về độ sâu, màu sắc của ảnh và âm thanh.
18




Giải pháp đã được ứng dụng rộng rãi trên thế giới, với hơn 20 triệu thiết bị trong đó
Kinect Sensor là một điển hình[11].
2.2.4. Thư viện hỗ trợ Kinect
Ngay từ đầu ra mắt sản phẩm Kinect của Microsoft đã được thu hút được sự
quan tâm từ nhiều nhà nghiên cứu. Kinect ngoài việc sử dụng chơi game mà còn có
khả năng phát triển trong nhiều lĩnh vực y học, robot, quảng cáo Để lấy các thông
số cần thiết của Kinect đòi hỏi khả năng lập trình tốt, am hiểu cấu hình thiết bị. Do
đó thư viện Kinect SDK ra đời nhằm giúp cho các lập trình viên dễ dàng lấy các
thông tin, khai thác sâu các tính năng của Kinect.
Kinect SDK
Kinect SDK được Microsoft phát triển ngày 16 tháng 6 năm 2011, sau hai
năm sau khi công bố sản phẩm Kinect, tuy ra muộn hơn các thư viện mã nguồn mở
khác nhưng thư viện lại hỗ trợ tối đa người lập trình phát huy hết tính năng của
Kinect.
Kinect chạy trên Windows SDK, tương thích Windows 7 trở lên, bao gồm
các trình điều khiển, cảm biến API mạnh mẽ cho bộ cảm biến cử động, giao diện
người dùng tự nhiên, tài liệu tham khảo cài đặt cho các ứng dụng và thiết bị. Kinect
SDK cung cấp các hướng dẫn cho các nhà phát triển để xây dựng các ứng dụng với
C++, C#, VB trên Microsoft Visual Studio 2010 trở lên[9].
Hiện giờ Microsoft đã phát triển tới phiên bản Kinect SDK 1.8, được phát
hành vào ngày 17 tháng 9 năm 2013 hỗ trợ tốt hơn để phát triển phần mềm, được
cung cấp bộ công cụ phát triển theo nhiều ngôn ngữ C++, C#, Visual Basic. Hơn
nữa còn có một diễn đàn hỗ trợ cho Kinect[12]
Các tính năng của SDK 1.8
- Loại bỏ nền cũ: Ứng dụng API hình nền xanh với chế độ một người dùng
được thay bởi kỹ thuật mới giúp thay đổi hình nền xung quanh người mà vẫn
đảm bảo sự ổn định và tính chính xác.

×