1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

63 366 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 63
Dung lượng 2,84 MB

Nội dung

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ê

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

3.3 Hướng phát triển 50

Tài liệu tham khảo

Trang 5

DANH MỤC TỪ VIẾT TẮT

API Application Programming Interface

CMOS Complementary metal-Oxide-Semiconductor

CL Code Laboratories

CPU Central Processing Unit

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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]

Trang 10

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

Trang 11

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

Trang 12

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]

- 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

Hình 1.3: Sản phẩm tường tương tác của công ty Vntouch

Trang 13

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]

Trang 14

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

Trang 15

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]

Trang 16

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]

Trang 17

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

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

Trang 18

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

Trang 19

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

Trang 20

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

Trang 21

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

Trang 22

- 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]

Trang 23

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

Trang 24

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

Trang 25

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

Trang 26

- Tạo máy chủ Web cho Kinect Data Streams: Được thiết kế để cho các ứng dụng HTML5 chạy trong trình duyệt kết nối với các cảm biến thông qua một máy chủ đang chạy trên máy cục bộ Các thành phần của máy chủ là một khuôn mẫu có thể sử dụng hay sửa đổi khi cần thiết

- Chụp màu và theo dõi khung xương tốt hơn với Kinect Fusion: Kinect Fusion cung cấp cho đối tượng quét 3D và tạo ra mô hình sử dụng một cảm biến Kinect cho Windows Với phiên bản này, người dùng có thể quét một cảnh, đồng thời có thể tạo và tương tác với một mô hình 3D chi tiết của cảnh vật đó

- Hỗ trợ thêm ngôn ngữ mới cho Speed Recognition: Loại bỏ tiếng ồn và tiếng vang, hỗ trợ nhận diện thêm nhiều ngôn ngữ mới

- Theo dõi khung xương ở chế độ ngồi: Có thể nhận biết người chơi đang đứng hay đang ngồi và có hiệu suất cao hơn chế độ mặc định

- Thời gian chạy cải tiến và chất lượng hình ảnh tốt hơn

- Hỗ trợ cho máy ảo, xây dựng hai cảm biến Kinect chạy song song

- Raw Sensor Stream - Cảm biến động: Các nhà phát triển có thể truy cập dữ liệu thô từ bộ cảm biến sâu, camera cảm biến màu sắc Cho phép xây dựng các cảm biến cấp độ thấp hơn thông qua cảm biến Kinect[10]

2.2.5 Tính toán độ sâu Kinect

Đây là một trong những đặc tính quan trọng nhất đó là về giá trị độ sâu hay giá trị khoảng cách tới vật thể trong thế giới thực

Góc quan sát của cảm biến là hình nón giống tất cả các camera thông thường Tuy nhiên với khoảng cách dưới 80cm thì camera hồng ngoại không thể tập trung vào một điểm trên lưới các điểm hồng ngoại Thông số mặc định được sử dụng để cho một kết quả ổn định là giữa 3 feet (0,8 mét) và 12 feet (3,5 mét) tính từ cảm biến đến đối tượng Chỉ số khoảng cách được thu về từ cảm biến là milimet[4]

Trang 27

Hình 2.8: Ảnh độ sâu

Hình 2.7: Góc chiếu Kinect Thư viện hỗ trợ Kinect SDK của Microsoft không cung cấp cho nhà phát triển quyền truy cập sâu vào dữ liệu được thu về từ camera hồng ngoại Kinect SDK

sẽ xử lý trước các dữ liệu lấy về từ camera hồng ngoại tạo ảnh độ sâu tùy ý Các dữ liệu độ sâu được thu về từ cảm biến tạo thành một frame ảnh độ sâu (DepthImageFrame), các frame ảnh độ sâu đó đã được xử lý trước bởi lớp DepthImageStream

Mỗi một điểm ảnh độ sâu gồm 16 bits chứa giá trị độ sâu và thông tin người

Trang 28

diện được 6 người Mười ba bits còn lại chứa thông tin về giá trị độ sâu của điểm ảnh đó

Hình 2.9: Thông tin các bit lưu trữ độ sâu Projector sẽ chiếu một chùm sáng hồng ngoại, tập hợp đốm sáng được phát

ra là cố định Những đốm sáng này được tạo ra nhờ một nguồn sáng truyền qua lưới nhiễu xạ(difraction gratings) Tập hợp các đốm sáng này được IR camera chụp lại, thông qua giải thuật đặc biệt được tích hợp trong PS1080 SoC cho bản đồ độ sâu Bản chất của giải thuật này là các phép toán hình học dựa trên quan hệ giữa hai cảm biến IR camera và Projector[1]

Hình 2.10: Ví dụ về đo độ sâu Nhìn vào hình ta có thể thấy cách tính toán độ sâu của Kinect nhờ laser hồng ngoại đặc biệt bằng một hình ba chiều sau đó các sử dụng bù đắp mỗi điểm để tạo ra bản đồ độ sâu 11 bit

Khi IR projector phát laser hồng ngoại tới mặt phẳng thì IR camera thu lại

Trang 29

lệch (disparity map), giá trị này càng lớn thì khoảng cách hay giá trị độ sâu ảnh (depth) càng lớn, các đốm sáng còn lại được xây dựng bằng phương pháp nội suy với độ chính xác theo công thức Nicolas Burrus [8], có giá trị chênh lệch d:

Trong đó:

- d: Số nguyên biểu diễn dưới dạng 11 bit

- Z: Giá trị biến thiên

2.2.6 Phân tích kỹ thuật máy học nhận diện khung xương

Máy học là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu

và xây dựng các kỹ thuật, cho phép các hệ thống “học” tự động từ dữ liệu để giải quyết các vấn đề cụ thể Để tạo ra một cảm biến Kinect có thể nhận và theo dõi cơ thể người Kinect đã áp dụng dụng kỹ thuật máy học đối với 100.000 hình ảnh độ sâu được cho là cơ thể người – những bức ảnh này được thu về từ những máy ảnh phát hiện chuyển động của con người

Hình 2.11: Đối tượng cơ thể áp dụng cho học máy Tuy nhiên, với một hình ảnh thực sự thì cần sử dụng đến hàng chục kỹ thuật

xử lý ảnh để có thể nhận diện ra một cơ thể con người Để có thể nhận diện hết tất

Trang 30

lớn Vì vậy đã có đến hơn một triệu lần cho máy học để có thể nhận dạng cơ thể người

Quá trình máy học của cảm biến Kinect cần đến 24.000 giờ xử lý trên CPU, nhưng nó chỉ có thể mất một ngày với việc xử nhiều CPU cùng xử lý cùng một lúc[6]

2.2.7 Giới thiệu khung xương

Trục tọa độ của khung xương

Tất cả các khớp xương được biểu diễn như là một mô hình ba chiều(x, y, z)

và quy ước sử dụng hệ trục tọa độ thuận tay phải Trục z sẽ luôn mang giá trị dương– biểu diễn độ sâu của khung xương

Mỗi khớp xương riêng biệt đều được xác định bởi một vị trí được xác định bên trong thành phần cấu trúc của thư viện Kinect SDK Cấu trúc của mỗi khớp xương được đại diện ba thuộc tính chính:

- JointType

- Positions (Vị trí)

- Tracking State (Mô tả trạng thái theo dõi)

Hình 2.12: Nhận dạng khung xương từ ảnh độ sâu

Trang 31

Hình 2.13: Trục tọa độ khung xương Thuộc tính JointType là một giá trị kiểu liệt kê JointType, trong đó có tên của đầy đủ 20 khớp xương Từng vị trí khớp đại diện cho một đối tượng của SkeletonPoint Thuộc tính Positions(vị trí) là một loại SkeletonPoint, đại diện cho

hệ tọa độ(x, y, z) và các giá trị của khớp xương đó Thuộc tính JointTrackingState

sẽ mô tả trạng thái các khớp xương với các nhãn: Tracked (theo dõi), Inferred (nội suy) hoặc Not Tracked (không thể theo dõi)[6]

2.3 Đồng bộ hóa ảnh

Việc theo dõi ảnh màu và tính toán ở ảnh độ sau gọi tắt là đồng bộ hóa ảnh màu và ảnh độ sâu sẽ giúp cho người dùng quét vùng tương tác dễ dàng và chính xác hơn Ảnh màu cho cái nhìn chính xác về không gian phía trước và việc xử lý thì lại diễn ra trên ảnh độ sâu Vì vậy việc đồng bộ hóa là điều cần thiết Ảnh màu và ảnh độ sâu được thu về từ Kinect có sự chênh lệch nhau về tọa độ điểm ảnh vì thiết

kế của Kinect để camera màu và camera hồng ngoại đặt cách nhau khoảng cách nên ảnh thu về có giá trị khác nhau[7]

Ngày đăng: 28/10/2014, 21:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Văn Đức và Nguyễn Hồng Đức, “Robot tự hành tránh vật cản sử dụng thiết bị Kinect”, Đại Học Quốc Gia Thành Phố Hồ Chí Minh, 2012, 99tr Sách, tạp chí
Tiêu đề: Robot tự hành tránh vật cản sử dụng thiết bị Kinect
[3] Phan Văn Khải -Nguyễn Văn Dũng “Điều khiển robot bằng phương pháp xác định số lượng ngón tay”, Đại Học Lạc Hồng, 2012, 64tr.Tài liệu tiếng Anh Sách, tạp chí
Tiêu đề: Điều khiển robot bằng phương pháp xác định số lượng ngón tay
[4] Abhijit Jana, “Kinect for Windows SDK Programming Guide” Build motion- sensing applications with Microsoft's Kinect for Windows SDK quickly and easily,Pages 77-209, 2012 Sách, tạp chí
Tiêu đề: Kinect for Windows SDK Programming Guide
[5] Jarrett Webb and James Ashley, “Beginning Kinect programming with the Microsoft Kinect SDK”, create cool kinect applications using the Microsoft Kinect SDK, Pages 10 -209, 2012 Sách, tạp chí
Tiêu đề: Beginning Kinect programming with the Microsoft Kinect SDK
[7] Rob Miles, “Start here learn the Kinect API” Pages 43-102, 123-144, 2012 Sách, tạp chí
Tiêu đề: Start here learn the Kinect API
[2] Nguyễn Thị Ngọc Huyền và Nguyễn Thị Kim Loan ”Xác định vật cản và ứng dụng tìm đường đi cho người mù”, Đại Học Lạc Hồng, 2012,51tr Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Mô hình mô phỏng hệ thống Ubi - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 1.1 Mô hình mô phỏng hệ thống Ubi (Trang 10)
Hình 1.2: Sản phẩm Touchless Touch - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 1.2 Sản phẩm Touchless Touch (Trang 11)
Hình 1.3: Sản phẩm tường tương tác của công ty Vntouch - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 1.3 Sản phẩm tường tương tác của công ty Vntouch (Trang 12)
Hình 1.4: Nhận diện bàn tay (OpenNI) - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 1.4 Nhận diện bàn tay (OpenNI) (Trang 14)
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 - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
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 (Trang 15)
Hình 1.6: Minh họa về mật độ điểm ảnh trên bàn tay - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 1.6 Minh họa về mật độ điểm ảnh trên bàn tay (Trang 16)
Hình 1.7: Mô phỏng khung xương - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 1.7 Mô phỏng khung xương (Trang 17)
Hình 2.1: Quy trình thực hiện - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.1 Quy trình thực hiện (Trang 19)
Hình 2.3: Hình cấu tạo của Kinect - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.3 Hình cấu tạo của Kinect (Trang 21)
Hình 2.4: Cấu tạo bên trong Kinect - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.4 Cấu tạo bên trong Kinect (Trang 22)
Hình 2.5: Công nghệ xử lý ảnh của PrimeSense - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.5 Công nghệ xử lý ảnh của PrimeSense (Trang 23)
Hình 2.6: Giải pháp độc quyền Light Coding của PrimeSense - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.6 Giải pháp độc quyền Light Coding của PrimeSense (Trang 24)
Hình 2.8: Ảnh độ sâu  Hình 2.7: Góc chiếu Kinect - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.8 Ảnh độ sâu Hình 2.7: Góc chiếu Kinect (Trang 27)
Hình 2.10: Ví dụ về đo độ sâu - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.10 Ví dụ về đo độ sâu (Trang 28)
Hình 2.11: Đối tượng cơ thể áp dụng cho học máy - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.11 Đối tượng cơ thể áp dụng cho học máy (Trang 29)
Hình 2.12: Nhận dạng khung xương từ ảnh độ sâu - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.12 Nhận dạng khung xương từ ảnh độ sâu (Trang 30)
Hình 2.13: Trục tọa độ khung xương - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.13 Trục tọa độ khung xương (Trang 31)
Hình 2.14: Ví dụ minh họa Rectangle kích thước 550x400 - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.14 Ví dụ minh họa Rectangle kích thước 550x400 (Trang 33)
Hình 2.15: Rectangle trên phần mềm - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.15 Rectangle trên phần mềm (Trang 34)
Hình 2.16: Quá trình nhận diện các khớp  xương - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.16 Quá trình nhận diện các khớp xương (Trang 35)
Hình 2.17: Khớp xương trên cơ thể được đánh tên - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.17 Khớp xương trên cơ thể được đánh tên (Trang 36)
Hình 2.22: Lưu đồ giải thuật - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.22 Lưu đồ giải thuật (Trang 41)
Hình 2.25: Lưu đồ chức năng chuột - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.25 Lưu đồ chức năng chuột (Trang 43)
Hình 2.27: Mô hình thiết kế đặt Kinect cố định ở sàn nhà - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.27 Mô hình thiết kế đặt Kinect cố định ở sàn nhà (Trang 45)
Hình 2.28: Mô hình thiết kế Kinect đặt cố định trên trần nhà - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 2.28 Mô hình thiết kế Kinect đặt cố định trên trần nhà (Trang 46)
Bảng 2.1: Thống kê thời gian hoạt động của chương trình ở các phòng học - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Bảng 2.1 Thống kê thời gian hoạt động của chương trình ở các phòng học (Trang 52)
Hình 3.1: Điều khiển game Angry Birds - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 3.1 Điều khiển game Angry Birds (Trang 55)
Hình 3.2: Chơi game có tính giáo dục dành cho trẻ em - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 3.2 Chơi game có tính giáo dục dành cho trẻ em (Trang 56)
Hình 3.4: Tường tương tác - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 3.4 Tường tương tác (Trang 57)
Hình 3.3: Mô hình bàn tương tác sử dung cảm biến Kinect  -  Tương tương tác. - Tương tác trực quan giữa người và máy tính bằng cảm biến quang
Hình 3.3 Mô hình bàn tương tác sử dung cảm biến Kinect - Tương tương tác (Trang 57)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w