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

Nghiên cứu nhận dạng tư thế bàn tay từ một chuỗi ảnh chiều sâu sử dụng cây quyết định ngẫu nhiên

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 (930.1 KB, 51 trang )

i

LỜI CAM ĐOAN
Trong quá trình thực hiện luận văn, dƣới sự hƣớng dẫn trực tiếp của TS.
Nguyễn Đức Thắng, tôi đã nghiên cứu và hoàn thành luận văn với sự nổ lực nghiên
cứu của bản thân. Do đó, tôi xin cam đoan rằng nội dung trong luận văn này là do
tôi thực hiện dƣới sự hƣớng dẫn của TS. Nguyễn Đức Thắng và mọi tham khảo
đƣợc sử dụng trong luận văn đều có trích dẫn nguồn cụ thể, rõ ràng, trung thực về
tên tác giả, tên công trình nghiên cứu, thời gian và địa điểm công bố.
Mọi sao chép không hợp lệ hoặc vi phạm quy chế đào tạo tôi xin chịu hoàn
toàn trách nhiệm ./.
TP.HCM , Ngày … Tháng … Năm 2016
HỌC VIÊN THỰC HIỆN LUẬN VĂN

PHẠM MINH LỘC


ii

LỜI CẢM ƠN
Lời cảm ơn đầu tiên tôi xin trân trọng gửi đến Ban Giám Hiệu Công Nghệ
Bƣu Chính Viễn Thông và các thầy cô Khoa Công Nghệ Thông Tin đã tạo điều kiện
cho tôi hoàn thành tốt chƣơng trình đào tạo Thạc sĩ trong thời gian qua.
Đặc biệt tôi xin gửi lời tri ân sâu sắc đến Thầy TS Nguyễn Đức Thắng, ngƣời
đã tận tình hƣớng dẫn, giúp đỡ và truyền đạt cho tôi những kinh nghiệm nghiên cứu
khoa học quý báu trong suốt quá trình thực hiện luận văn tốt nghiệp này.
Lời cám ơn sau cùng tôi xin gửi đến toàn thể bạn bè, ngƣời thân, cùng gia
đình những ngƣời đã gắn bó, chia sẽ kinh nghiệm, động viên và ủng hộ mọi mặt về
vật chất và tinh thần để tôi đạt đƣợc thành quả nhƣ ngày hôm nay.
TP.HCM , Ngày … Tháng … Năm 2016
HỌC VIÊN THỰC HIỆN LUẬN VĂN



PHẠM MINH LỘC


iii

MỤC LỤC
MỞ ĐẦU .......................................................................................................................... 1
CHƢƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG ẢNH THEO CHIẾU SÂU ................ 3
1.1

Giới thiệu camera chiều sâu .................................................................................... 3

1.2

Tổng quan các loại camera đo ảnh theo chiều sâu .................................................. 3

1.2.1 Stereo camera ......................................................................................................... 3
1.2.2 “Time-of-flight” camera .......................................................................................... 4
1.2.3 Structured light camera ........................................................................................... 4
1.3

Tổng quan về nhận dạng hình cảnh cử chỉ bàn tay ................................................. 5

1.3.1 Giới thiệu tƣơng tác giữa ngƣời và máy.................................................................. 5
1.3.2 Cử chỉ bàn tay.......................................................................................................... 6
1.3.3 Phƣơng pháp nhận dạng cử chỉ bàn tay sử dụng ảnh theo chiều sâu ...................... 6
1.3.4 Những nghiên cứu liên quan ................................................................................... 8
CHƢƠNG 2 - NỘI DUNG NGHIÊN CỨU ................................................................... 10
2.1


Giới thiệu camera Kinect của Microsoft ............................................................... 10

2.2

Cấu tạo camera Kinect .......................................................................................... 11

2.2.1 Hệ thống cảm biến chiều sâu ................................................................................. 11
2.2.2 Camera RGB-D ..................................................................................................... 12
2.2.3 Động cơ, máy đo gia tốc, micro ............................................................................ 13
2.2.4 Phần mềm hỗ trợ ................................................................................................... 13
2.3

Tính toán độ sâu của Kinect .................................................................................. 13

2.4

Thƣ viện mã nguồn mở OpenCV .......................................................................... 17

2.5

Kiến trúc của OpenCV .......................................................................................... 17

2.6

Các ứng dụng của OpenCV ................................................................................... 18

2.7

Tổng quan các giai đoạn của nhận dạng cử chỉ bàn tay: ...................................... 19


2.8

Huấn luyện ảnh theo chiều sâu .............................................................................. 20

2.8.1 Thu thập dữ liệu huấn luyện bàn tay ..................................................................... 20
2.8.2 Tiền xử lý ảnh ........................................................................................................ 21
2.8.3 Phân đoạn hình ảnh ............................................................................................... 22
2.8.4 Đặc trƣng của ảnh theo độ sâu .............................................................................. 24
2.8.5 Xây dựng bộ dữ liệu huấn luyện ảnh theo chiều sâu ............................................. 25


iv

2.9

Nhận dạng và biểu diễn tƣ thế bàn tay .................................................................. 27

2.9.1 Nhận dạng bàn tay từ ảnh theo chiều sâu .............................................................. 27
2.9.2 Thuật toán xử lý và hiển thị hình ảnh bàn tay ....................................................... 27
CHƢƠNG 3 - CÀI ĐẶT MÔI TRƢỜNG ...................................................................... 28
3.1

Cài đặt và kết nối camera Kinect........................................................................... 28

3.2

Cài đặt OpenCV cho môi trƣờng phát triển code .................................................. 29

CHƢƠNG 4: KẾT QUẢ THỬ NGHIỆM ...................................................................... 33

4.1

Mô tả dữ liệu huấn luyện ....................................................................................... 33

4.2

Mô tả hệ thống ....................................................................................................... 34

4.3

Độ chính xác của thuật toán Random Forest ......................................................... 34

4.3.1 Theo số lƣợng cây huấn luyện ............................................................................... 34
4.3.1 Theo độ sâu của cây huấn luyện ............................................................................ 35
4.4

Độ chính xác của ảnh chiều sâu ............................................................................ 36

4.4.1 Khả năng phân biệt các bộ phận của bàn tay ........................................................ 37
4.4.2 Khả năng phân biệt hình dạng cử chỉ bàn tay ....................................................... 38
4.5

Nhận xét kết quả nghiên cứu ................................................................................. 39

KẾT LUẬN..................................................................................................................... 40
1.

Những đóng góp của luận văn ............................................................................... 40

2.


Hƣớng phát triển tiếp theo của luận văn................................................................ 40

DANH MỤC TÀI LIỆU THAM KHẢO ........................................................................ 41


v

DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

GPU

Graphics Processing Unit

Bộ xử lý đồ họa

RGB

RGB(red, green, blue)

RGB (đỏ, xanh lá cây, xanh dƣơng)

ToF

Time of flight


Đo thời gian ánh sáng

LIDAR

Light Detection And Ranging Theo dõi đƣờng ánh sáng

SVM

Support Vector Machine

Máy học hổ trợ vector

RGB-D

Red, Green, Blue, Depth

Đỏ, Xanh lá cây, Xanh dƣơng, Độ sâu

IR

Infrared Camera

Camera hồng ngoại

ML

Machine Learning

Máy học



vi

DANH MỤC CÁC HÌNH VẼ
HÌNH 1.1 : CAMERA CREATIVE (STEREO CAMERA) ....................................................4
HÌNH 1.2 : TOF CAMERA ..............................................................................................4
HÌNH 1.3 : CAMERA KINECT CỦA HÀNG MICROSOFT ..................................................5
HÌNH 1.4 : CAMERA KINECT ......................................................................................10
HÌNH 1.5 : CẤU TẠO CAMERA KINECT .......................................................................11
HÌNH 1.6 : SƠ ĐỒ KHỐI ...............................................................................................11
HÌNH 1.7 : SƠ ĐỒ KHOẢNG CÁCH HOẠT ĐỘNG CỦA CAMERA KINECT .......................12
HÌNH 1.7 : QUÁ TRÌNH THU VỀ BẢN ĐỒ ĐỘ SÂU CỦA CAMERA KINECT .....................14
HÌNH 1.8 : MẪU HÌNH ĐƢỢC CHIẾU BỞI PROJECTOR VÀ CHỤP LẠI BẰNG IR CAMERA 14
HÌNH 1.9 : TÍNH TOÁN KHOẢNG CÁCH TỚI MỘT ĐIỂM CHIẾU TỪ PROJECTOR ............15
HÌNH 2.1: KIẾN TRÚC CƠ BẢN CỦA OPENCV ............................................................18
HÌNH 2.2: CÁC GIAI ĐOẠN XỬ LÝ ẢNH .......................................................................20
HÌNH 2.3: HÌNH ẢNH TỔNG HỢP CỦA MẪU HUẤN LUYỆN BÀN TAY ............................21
HÌNH 2.4: HÌNH ẢNH BÀN TAY ĐƢỢC CHỌC LỌC........................................................21
HÌNH 2.5: HÌNH ẢNH BÀN TAY ĐƢỢC DÁN NHÃN SAU KHI PHÂN ĐOẠN .....................22
HÌNH 2.6 : CÁC VECTOR ĐỐI XỨNG XUNG QUANH 1 ĐIỂM .........................................24
HÌNH 2.7 : LẤY NGẪU NHIÊN ĐẶC TRƢNG CỦA CÁC ĐIỂM TRÊN BÀN TAY .................25
HÌNH 2.8 : RANDOMIZED DECISION FORESTS ............................................................25
HÌNH 2.9 : THUẬT TOÁN NHẬN DẠNG BÀN TAY .........................................................27
HÌNH 3.1 : HIỂN THỊ BÀN TAY DÁN NHÃN ..................................................................27
HÌNH 3.2: CÀI ĐẶT OPENCV .....................................................................................29
HÌNH 3.3: SỬ DỤNG CMAKE TẠO PROJECT ................................................................30
HÌNH 3.4: LỰA CHỌN MÔI TRƢỜNG PHÁT TRIỂN ........................................................30
HÌNH 3.5 : KHỞI TẠO CẤU HÌNH .................................................................................31
HÌNH 3.6 : MỞ FILE OPENCV.SLN .............................................................................31

HÌNH 3.7: CHỌN CHẾ ĐỘ RELEASE .............................................................................32
HÌNH 3.8 : BUILD CHƢƠNG TRÌNH ..............................................................................32
HÌNH 3.9 : DỮ LIỆU HUẤN LUYỆN BÀN TAY ...............................................................33


vii

HÌNH 4.1 : MÔ PHỎNG HỆ THỐNG HUẤN LUYỆN VÀ NHẬN DẠNG CỬ CHỈ BÀN TAY ....34
HÌNH 4.2: MÔ PHỎNG HỆ THỐNG HUẤN LUYỆN VÀ NHẬN DẠNG CỬ CHỈ BÀN TAY.....34
HÌNH 4.3: ĐỘ CHÍNH XÁC CỦA THUẬT TOÁN THEO SỐ LƢỢNG CÂY HUẤN LUYỆN .....35
HÌNH 4.4 : KẾT QUẢ SO SÁNH ĐỘ CHÍNH XÁC CỦA THUẬT TOÁN THEO CHIỀU SÂU ...36
HÌNH 4.6: NHẬN DẠNG CÁC THÀNH PHẦN CỦA BÀN TAY ..........................................37
HÌNH 4.7 : ĐỒ THỊ BIỂU DIỄN ĐỘ CHÍNH XÁC CỦA TỪNG MẪU BÀN TAY ....................38
HÌNH 4.8 : NHẬN DẠNG CỬ CHỈ BÀN TAY THEO ẢNH CHIỀU SÂU ...............................39


1

MỞ ĐẦU
Từ thời kỳ của máy tính bắt đầu xuất hiện , một vấn đề mà khiến nhiều nhà
khoa học phải đau đầu khi phát minh ra máy tính là việc giao tiếp giữa con ngƣời
với máy tính. Do hạn chế về công nghệ nên con ngƣời lúc bấy giờ chỉ có thể giao
tiếp với máy tính qua 2 thiết bị chuột và bàn phím. Những thiết bị này tuy rất hiệu
quả nhƣng với nhu cầu phát triển xã hội ngày một đi lên, chúng ngày càng bộc lộ
những hạn chế nhất định. Với sự đột phá ngày càng mạnh mẽ của trình độ khoa học
ngày nay đã đạt đƣợc nhiều bƣớc tiến quan trọng, khiến cho việc sử dụng máy tính
trở nên tiện dụng và thân thuộc với con ngƣời hơn. Ngoài những thiết bị nhƣ chuột
và bàn phím bây giờ cũng đã xuất hiện các thiết bị giao tiếp khác nhƣ camera và
micro .v.v.
Điều đó dẫn đến sự phát triển mạnh mẽ trong lĩnh vực nghiên cứu giao tiếp

giữa con ngƣời với máy tính thông qua ngôn ngữ hình ảnh và âm thanh. Khi so sánh
các hệ thống giao tiếp với máy tính bằng hình ảnh và âm thanh, thì một hệ thống thị
giác sẽ thích hợp hơn một hệ thống điều khiển âm thanh bởi vì đây là một môi
trƣờng có rất nhiều âm thanh ồn ào và tạp âm khiến cho việc giao tiếp không còn
chính xác.Việc nghiên cứu này ngày càng trở nên cấp thiết bởi vì nó đem lại rất
nhiều ứng dụng trong tất cả lĩnh vực khác nhau của xã hội nhƣ : hỗ trợ rất tốt trong
giao tiếp cho ngƣời khuyết tật (câm, điếc) , hỗ trợ điều khiển từ xa mà không cần
thiết bị cảm biến phụ trợ ( điều khiển robot , các loại game giải trí không cần thiết bị
điều khiển ) .v.v..
Những đề tài nghiên cứu trƣớc đây vẫn còn hạn chế về công nghệ thiết bị
camera (camera RGB), thuật toán xử lý ảnh chậm .Trong đề tài này sẽ đƣa ra hƣớng
nghiên cứu mới, giúp cho việc nhận dạng nhanh chóng và chính xác hơn, cải thiện
đáng kể hiệu năng . Với việc phát triển công nghệ , thiết bị camera ngay này đã có
nhiều thay đổi đáng kể : camera vừa có thể thu ảnh RGB vừa có thể thu ảnh theo
chiều sâu. Đây là một công nghệ quan trọng sẽ đƣợc đƣa ra nghiên cứu trong đề tài
bằng việc nghiên cứu kỹ thuật nhận dạng tƣ thế bàn tay từ chuỗi ảnh theo chiều sâu
dựa trên thuật toán cây quyết định ngẫu nhiên.


2

Với những lý do nhƣ trên, ta thấy đƣợc tính cấp thiết của đề tài và ứng dụng
rộng rãi của nó trong nhiều lĩnh vực ngành nghề khác nhau của xã hội, đóng góp
đáng kể cho việc nghiên cứu khoa học .


3

CHƢƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG ẢNH THEO
CHIẾU SÂU

1.1 Giới thiệu camera chiều sâu
Camera theo chiều sâu hay camera 3D là thiết bị thu nhận hình ảnh màu với
3 màu cơ bản là Green, Red, Blue và thực hiện đo độ sâu hay khoảng cách tới đối
tƣợng cần thu.

1.2 Tổng quan các loại camera đo ảnh theo chiều sâu [2]
1.2.1 Stereo camera
Một camera stereo [2][43] là một loại máy ảnh với hai hay nhiều ống kính
với các đầu cảm biến hình ảnh hoặc khung hình cho mỗi ống kính. Điều này cho
phép máy ảnh để mô phỏng con ngƣời nhìn bằng hai mắt và cung cấp cho nó khả
năng chụp ảnh ba chiều . Camera stereo có thể đƣợc sử dụng để làm trình chiếu ba
chiều của hình ảnh chiều sâu cho phim ảnh hoặc cho nhiều hình ảnh . Khoảng cách
giữa các ống kính trong một camera stereo (khoảng cách trong nội bộ trục) là
khoảng cách giữa hai mắt của một ngƣời (đƣợc gọi là khoảng cách nội nhãn cầu).
Để chụp ảnh chiều sâu , camera stereo[43] cũng có thể đƣợc thực hiện đƣợc
với chi phí thấp hơn bằng cách chụp hai hình ảnh nhƣ một máy ảnh số nhƣng di
chuyển máy ảnh một vài inches sang trái hoặc phải. Nếu hình ảnh đƣợc chỉnh sửa
để mỗi mắt thấy một hình ảnh khác nhau, từ đó sẽ lấy đƣợc hình ảnh thể hiện ba
chiều. Phƣơng pháp này có vấn đề với các đối tƣợng di chuyển trong các khía cạnh
khác nhau và đến nay vẫn còn đƣợc sử dụng.


4

Hình 1.1 : Camera Creative (Stereo camera [43] )

1.2.2 “Time-of-flight” camera
ToF camera [2][44] là một hệ thống camera chụp nhiều ảnh liên tục để tính
khoảng cách từ camera đến vật thể dựa trên tốc độ của ánh sáng và đo thời gian
của một đƣờng ánh sáng từ máy ảnh tới đối tƣợng của từng điểm trong hình

ảnh. Chiếc máy là một máy scan nhƣ LIDAR [46], trong đó toàn bộ khung cảnh
đƣợc chụp bởi laser hoặc xung ánh sáng, nhƣng không phải là ánh sáng từ điểm đến
điểm mà là 1 chùm tia laser quét nhƣ hệ thống LIDAR [46]
ToF camera [44] phục vụ cho các ứng dụng dân sự bắt đầu xuất hiện vào
khoảng năm 2000. Phạm vi của hệ thống từ một vài cm đến vài km và khoảng cách
độ phân giải là 1 cm. Các độ phân giải bên ToF camera [44] thƣờng thấp so với
máy ảnh video chuẩn hai chiều tính cho đến năm 2011. So với phƣơng pháp quét
lazer đo độ sâu để chụp hình ảnh ba chiều, máy ảnh TOF hoạt động rất nhanh
chóng, cung cấp lên đến 160 hình mỗi giây.

Hình 1.2 : ToF camera [44]

1.2.3 Structured light camera
Structured light camera [2][45] là một thiết bị có chức năng quét lazer để đo
hình dạng ba chiều của một đối tƣợng bằng cách sử dụng các mẫu đèn chiếu và
một hệ thống máy ảnh .
Chiếu một dải hẹp ánh sáng lên một bề mặt hình ba chiều tạo ra một đƣờng
ánh sáng xuất hiện méo từ những khía cạnh khác so với máy chiếu và có thể đƣợc
sử dụng để dựng lại chính xác hình học bề mặt (phần ánh sáng).


5

Một phƣơng pháp nhanh hơn và linh hoạt hơn là cách chiếu lên mô hình gồm
nhiều sọc cùng một lúc hoặc rìa tùy ý. Vì điều này cho phép thu lại đƣợc vô số các
mẫu cùng một lúc. Nhìn từ khía cạnh khác nhau, mô hình đƣợc hình thành bị bóp
méo theo hình dạng bề mặt của đối tƣợng.
Mặc dù có nhiều biến thể khác của Structured light camera, mô hình của các
sọc song song đƣợc sử dụng rộng rãi. Các hình ảnh cho thấy sự biến dạng hình học
của một sọc đơn chiếu lên một bề mặt ba chiều của vật thể. Sự dịch chuyển của các

đƣờng kẻ sọc cho phép cho một phục hồi chính xác của điểm ảnh theo độ sâu đƣợc
phân bổ trên bất kỳ bề mặt của đối tƣợng . Kinect là một sản phẩm đại diện của
Structured light camera .

Hình 1.3 : Camera Kinect của hàng Microsoft [45]
1.3 Tổng quan về nhận dạng hình cảnh cử chỉ bàn tay

1.3.1 Giới thiệu tương tác giữa người và máy
Những thiết bị đầu vào và đầu ra đặc biệt đã đƣợc thiết kế trong những năm
qua với mục đích làm cho phần giao tiếp giữa máy tính và con ngƣời đƣợc thực
hiện dễ dàng. Hai thiết bị phổ biến nhất là bàn phím và con chuột.
Ý tƣởng để làm cho máy tính hiểu ngôn ngữ con ngƣời và phát triển giao
diện ngƣời – máy thân thiện đang nhận đƣợc sự quan tâm của cộng đồng các nhà
nghiên cứu . Làm cho máy tính hiểu đƣợc lời nói, nét mặt, cử chỉ của con ngƣời là
một trong số những quan tâm đó.Trong tƣơng tác giữa con ngƣời và máy tính, các
hình dạng khác nhau của bàn tay có thể giả định để thao tác với các đối tƣợng hoặc
có thể truyền tải rất nhiều thông tin. Do đó, bàn tay của con ngƣời có thể sử dụng
làm “Thiết bị đầu vào” rất có giá trị.


6

Trong thế giới thực, chúng ta có thể cầm, thả , di chuyển … các đối tƣợng
bằng các cử chỉ của bàn tay.Tƣơng tự nhƣ vậy, khi tƣơng tác với các thiết bị nhƣ
máy tinh, tivi, ô tô …chỉ với cử chỉ của bàn tay là ta có thể điều khiển đƣợc hoạt
động của nó .Để làm đƣợc điều này, bộ điều khiển của thiết bị phải đƣợc gắn một
thiết bị cảm nhận nhƣ camera hay webcame , thiết bị sẽ thu nhận hình ảnh bàn tay,
nhận dạng cử chỉ để phát lệnh điều khiển tƣơng ứng.
Để nhận dạng cử chỉ, bƣớc đầu tiên trong các hệ thống nhận dạng là phát
hiện ra vị trí bay tay bằng một thiết bị đặc biệt nhƣ camera để thu thập các quan sát

chuyển động cử chỉ bàn tay. Sau đó tiến hành xử lý hình ảnh để lọc ra đƣợc ảnh cử
chỉ bàn tay và đƣa vào huấn luyện cho máy tính nhận dạng. Các cử động của bàn
tay đƣợc phát hiện dựa trên tập dữ liệu về bàn tay đƣợc thu thập và huấn luyện từ
trƣớc. Hai hƣớng tiếp cận chính để thu nhận thông tin về bàn tay có thể sử dụng là:
dùng găng tay chuyên biệt có gắn thiết bị cảm biến khớp tay với phƣơng pháp
quang học .

1.3.2 Cử chỉ bàn tay
Thật khó để có thể giải quyết với một định nghĩa cụ thể nào của cử chỉ do có
nhiều ứng dụng đề xuất và mỗi ứng dụng chỉ có thể xác định trên một miền cụ thể
của cử chỉ.
Cử chỉ phải đƣợc định nghĩa nhƣ những chuyển động của thân thể khi giao
tiếp với các cá thể khác. Để giao tiếp thành công, ngƣời truyền và ngƣời nhận phải
có cùng một tập hợp thông tin cho những cử chỉ đặc biệt.
Trong nghiên cứu, cử chỉ đƣợc định nghĩa nhƣ một sự chuyển động của
những ngón tay nhƣ là tín hiệu đặc biệt để liên lạc chính xác giữa ngƣời gửi và thiết
bị nhận.

1.3.3 Phương pháp nhận dạng cử chỉ bàn tay sử dụng ảnh theo chiều sâu
Hiện nay, ứng dụng tƣơng tác dựa vào cử chỉ bàn tay đƣợc phát triển mạnh
mẽ và áp dụng trong chơi game hoặc tƣơng tác của con ngƣời và máy tính hoặc
robot mà không cần thiết bị điều khiển , ứng dụng nhận dạng trong lĩnh vực an ninh,
ứng dụng điều khiển trong các hội thảo từ xa và thậm chí là lĩnh vực chăm sóc sức
khỏe hỗ trợ ngƣời tàn tật. Những công việc đó gần đây đã đƣợc đơn giản hóa rất
nhiều bởi sự ra đời của máy ảnh đo chiều sâu [1][8][10][23][20][15][7] theo thời


7

gian thực. Tuy nhiên, thậm chí với những công nghệ tốt nhất hiện nay vẫn còn

những hạn chế nhất định. Đặc biệt cho đến khi có sự ra đời của Kinect [12], không
phụ thuộc vào phần cứng máy tính của ngƣời sử dụng mà vẫn xử lý đầy đủ các hình
dạng và kích cỡ của hình ảnh khi chuyển động tốc độ cao. Một số hệ thống đạt đƣợc
tốc độ cao bằng cách theo dõi từ frame này sang frame khác của hình ảnh nhƣng rất
khó khăn để có thể tái khởi tạo hình ảnh một cách nhanh chóng, nhƣ vậy không phải
là tối ƣu nhất. Trong nghiên cứu này, tôi tập trung vào nhận dạng tƣ thế bàn tay với
các thành phần bằng cách theo dõi và phát hiện từ một hình ảnh chiều sâu . Nghiên
cứu phƣơng pháp khởi tạo và phục hồi mỗi khung ảnh để bổ sung cho các thuật toán
theo dõi [4][21][9][22][7] các chuyển động tƣ thế theo thời gian thực. Các thuật
toán trình bày ở đây tạo thành một yếu tố cốt lõi dựa trên nền tảng chơi game
Kinect [1][13] .
Lấy cảm hứng từ theo dõi nhận dạng đối tƣợng bằng cách phân chia các đối
tƣợng thành những thành phần riêng biệt. Cách tiếp cận của tôi đi theo hai mục tiêu
chính: tính toán hiệu quả và nhanh hơn. Một hình ảnh theo chiều sâu đầu vào sẽ
đƣợc tách ra các thành phần bộ phận, đính nhãn với các bộ phận đƣợc định nghĩa
trong không gian lƣu trữ tạo thành bộ khung hình ảnh theo độ sâu của các bộ phận
bàn tay. Dựa vào dữ liệu lƣu trữ các kiểu khác nhau của mỗi thành phần đƣợc phân
bổ và suy ra chính xác các vị trí của mỗi bộ phận bàn tay .
Tôi phân loại các bộ phận bàn tay nhƣ một pixel đƣợc đính nhãn. Đối với dữ
liệu huấn luyện , có thể tạo ra những hình ảnh theo chiều sâu và hình ảnh thực từ
nhiều hình dạng và kích cỡ trong những tƣ thế bàn tay rất đa dạng tạo thành một cơ
sở dữ liệu lớn lƣu trữ các tƣ thế của bàn tay. Tôi huấn luyện dựa trên thuật toán cây
quyết định ngẫu nhiên [16][17] cải thiện tốc độ nhanh hơn khi sử dụng số lƣợng lớn
hình ảnh huấn luyện. Tóm lại , việc phân biệt hình ảnh so sánh chiều sâu làm tăng
năng suất và giữ ổn định các điểm ảnh mà vẫn duy trì sự tính toán hiệu quả cao hơn
các phƣơng thức truyền thống. Cuối cùng, không gian mô hình của mỗi pixel phân
bổ đƣợc tính toán bằng cách dựa trên sự thay đổi trung bình [6] dẫn đến xuất ra
chính xác hình ảnh.
Phƣơng pháp thực hiện tối ƣu của thuật toán hoạt động dựa trên cơ chế
frame-by-frame dẫn đến sự khác biệt đáng kể hình dạng cơ thể và kích thƣớc,

phƣơng pháp tiếp cận đƣợc thực hiện một cách tự nhiên và phân chia đƣợc trên


8

khung ảnh. Tôi đánh giá trên cả hai hình ảnh độ sâu và hình ảnh thực . Mặc dù
không có ràng buộc về thời gian khai thác hoặc chuyển động học nhƣng điểm ảnh
xuất ra vẫn chính xác và ổn định. Nghiên cứu chính của tôi là tìm hiểu cách thức
nhận dạng đối tƣợng bằng cách sử dụng một bộ phận cơ thể trung gian đại diện
đƣợc định nghĩa để nhận dạng chính xác những cái theo dõi với chi phí tính toán
thấp và độ chính xác cao. Thử nghiệm của tôi đem lại một số kiến thức : (ii) mở
rộng quy mô các vấn đề học tập với các dữ liệu tổng hợp đa dạng là rất quan trọng
với độ chính xác cao; (iii) phƣơng pháp của chúng tôi là phƣơng pháp tiếp cận tổng
quát tốt hơn phƣơng pháp dự đoán kết quả chính xác ở mức gần kề nhất có thể.

1.3.4 Những nghiên cứu liên quan
Dự đoán tƣ thế con ngƣời đã tạo nền tảng cơ bản cho lĩnh vực nhận dạng
[22][24]. Máy ảnh theo chiều sâu đã thúc đẩy phát triển mạnh mẽ trong nhận dạng
hình ảnh [16][19][47]. Grest [29] sử dụng phƣơng pháp lặp điểm gần nhất để theo
dõi một bộ xƣơng của một kích thƣớc đƣợc biết đến và vị trí bắt đầu. Anguelov [25]
Phân đoạn mô hình 3D quét dữ liệu đầu, mình, tay, chân khi sử dụng hình ảnh quay
và MRF. Zhu & Fujimura [42] xây dựng heuristic cho các bộ phận trên cơ thể (đầu,
thân, tay) sử dụng lập trình tuyến tính với T-pose khởi tạo kích thƣớc cho các mô
hình. Siddiqui & Medioni [38] thiết bị dò đầu cổ tay , tay , cẳng tay và hiển thị dữ
liệu theo định hƣớng MCMC mô hình phù hợp làm tốt hơn ICP. Kalogerakis [31]
phân loại và phân chia các đỉnh trong một mô hình 3D với các bộ phận khác nhau.
Plagemann [34] xây dựng một lƣới 3D để tìm ra những điểm quan tâm đo đạc cực
trị mà đƣợc phân loại thành 3 phần: đầu, tay và chân. Phƣơng pháp của họ cung cấp
cả một địa điểm và ƣớc tính định hƣớng của những bộ phận này, nhƣng không phân
biệt từ trái qua phải và sử dụng các điểm trung tâm hạn chế sự lựa chọn của các bộ

phận. Những tiến bộ cũng đã đƣợc sử dụng : máy ảnh cƣờng độ thông thƣờng, mặc
dù với chi phí cao hơn. Bregler & Malik [27] Theo dõi ngƣời sử dụng vòng xoắn và
bản đồ theo cấp số nhân từ một tƣ thế ban đầu. Ioffe & Forsyth [30] Nhóm cạnh
song song nhƣ phân đoạn cơ thể và kết hợp tỉa các phân đoạn sử dụng một bộ phân
loại theo dự tính. Mori & Malik [32] Sử dụng các mô tả hình dạng để phù hợp với
bối cảnh. Ramanan & Forsyth [35] Tìm phần cơ thể bằng cách sử dụng cặp đƣờng
song song và phân nhóm trên khung hình. Shakhnarovich [37] Ƣớc lƣợng trên cơ


9

thể và nội suy k-NN phù hợp với tham số băm. Agarwal & Triggs [29] Tìm hiểu
một hồi quy từ các tính năng hình ảnh bóng để tạo dáng. Sigal [39] Sử dụng eigen
hình mẫu dò cho đầu, cánh tay và chân . Felzenszwalb & Huttenlocher [28] Áp
dụng cấu trúc pictoria để ƣớc lƣợng tạo ra hiệu quả. Navaratnam [33] Sử dụng số
liệu thống kê biên của dữ liệu để dán nhãn và cải thiện tƣ thế dự toán. Urtasun &
Darrel [40] Đề xuất một tập hợp của quá trình Gaussian với tƣ thế của con ngƣời.
Rogez [36] Sử dụng thuật toán cây quyết định ngẫu nhiên trên một hệ thống các
lớp đƣợc định nghĩa trên một đƣờng gờ của các mô hình con ngƣời chuyển động có
chu kỳ và góc quay camera. Wang & Popovi 'c [41] Theo dõi bàn tay mặc chiếc
găng tay màu. Hệ thống của chúng có thể đƣợc xem nhƣ là tự động suy các màu sắc
của một bộ đồ màu ảo từ một hình ảnh sâu. Bourdev & Malik [26] Hiển thị
'poselets' để hình thành các cụm trong cả 3D đƣợc tạo ra và xuất hiện hình ảnh 2D
và phát hiện sử dụng SVM.


10

CHƢƠNG 2 - NỘI DUNG NGHIÊN CỨU
2.1 Giới thiệu camera Kinect của Microsoft

Kinect [47][12 ] là một thiết bị đầu vào và là cảm biến chuyển động do hãng
Microsoft sản xuất dành cho Xbox 360 [12] và máy tính Windows. Dựa trên một
webcam kiểu add-on ngoại vi cho Xbox 360 [12] , nó cho phép ngƣời dùng điều
khiển và tƣơng tác với Xbox 360 [12] mà không cần phải dùng đến một bộ điều
khiển tay cầm, thông qua một giao diện ngƣời dùng tự nhiên bằng cử chỉ và lệnh
nói. Thiết bị đƣợc giới thiệu vào tháng 11 năm 2010 nhƣ một phụ kiện của Xbox
360 [12]. Cảm biến chiều sâu (depth sensor) đƣợc sử dụng trong Kinect [47][12]
đƣợc phát triển bởi Zeev Zalevsky, Alexander Shpunt, Aviad Maizels và Javier
Garcia năm 2005. Kinect đã chính thức đƣợc công bố vào ngày 01 tháng 6 năm
2009, dƣới cái tên "Project Natal" ( Natal là tên một thành phố ở Brazil, nơi sinh
của 1 giám đốc dự án này). Chức năng chính của Kinect [47][12] là một công cụ để
ngƣời dùng tƣơng tác với Xbox 360 [12] bằng cử chỉ và lệnh nói. Vì lý do này, các
bộ cảm biến có khả năng thu thập dữ liệu ở độ phân giải 640x480 điểm ảnh. Với các
dữ liệu chiều sâu, có thể lấy đƣợc một khung xƣơng của ngƣời đứng phía trƣớc của
cảm biến. Và với bộ xƣơng đó, nó có thể nhận biết đƣợc cử chỉ của ngƣời sử dụng.
Một số hình ảnh về Kinect [47][12] và Xbox 360 [12].

Hình 1.4 : Camera Kinect [47]


11

2.2 Cấu tạo camera Kinect [12]

Hình 1.5 : Cấu tạo camera Kinect [47][48]

Hình 1.6 : Sơ đồ khối [47][ 48]

2.2.1 Hệ thống cảm biến chiều sâu
Bao gồm bộ phát hồng ngoại (Infrared light) và camera hồng ngoại (depth

image CMOS). Kích cỡ ảnh là 640x480 pixel, tốc độ chụp 30 khung hình mỗi giây.
Có 2 phạm vi độ sâu:
+ Phạm vi mặc định có sẵn trong cả hai bộ cảm biến Kinect cho Windows và các
cảm biến Kinect [47] cho Xbox 360.
+ Phạm vi gần là chỉ có trong cảm biến Kinect [47] cho Windows.


12

Hình 1.7 : Sơ đồ khoảng cách hoạt động của camera Kinect [47][49]
Để cảm biến hoạt động tốt nhất thì nên sử dụng khoảng cách từ 1,2m - 3,5m.
Hoạt động : Các tia hồng ngoại đƣợc chiếu qua bộ phát hồng ngoại đến đối
tƣợng, sau đó camera hồng ngoại sẽ thu thập dữ liệu bị phản chiếu.

2.2.2 Camera RGB-D
Chức năng chính của camera [48][49] là nhận biết 3 màu cơ bản là đỏ, xanh
lá cây và xanh da trời (Red-Green-Blue). Quá trình chụp bao gồm việc chụp một
ảnh màu (RGB) và thực hiện một phép đo độ sâu (D). Cảm biến hình ảnh kết hợp
với cảm biến chiều sâu nằm ở gần nhau, cho phép sáp nhập bản đồ, cho ra hình ảnh
3D. Thông tin ảnh RGB-D đƣợc lƣu trữ.
Với kích cỡ 1280x960 pixel, tốc độ 12 khung hình/giây. Với kích cỡ
640x480 pixel, tốc độ chụp 30 khung hình/giây. Từ đây cho thấy,khi thiết lập độ
phân giải thấp hơn thì tốc độ chụp và truyền hình ảnh là cao hơn.
Với dữ liệu sâu thu đƣợc, nó sẽ tạo ra một bản đồ về bộ xƣơng ngƣời đứng ở
trƣớc cảm biến. Và với bộ xƣơng đó, nó có thể xác định đƣợc cử chỉ,hành động của
ngƣời sử dụng.


13


2.2.3 Động cơ, máy đo gia tốc, micro
Động cơ : nằm ở đế của cảm biến Kinect [47][48][49] . Nó có khả năng làm
cho cảm biến hƣớng đầu lên trên cao và hạ xuống thấp. Với khả năng này sẽ giúp
cho cảm biến có thể thu đƣợc hình ảnh cao hơn rất nhiều so với khi không có bộ
động cơ.
Máy đo gia tốc : Kinect [47][48][49] sử dụng nó để xác định ngƣời đứng
trƣớc, đứng sau trong khi đo.
Micro : bao gồm 4 micro nhỏ, hoạt động nhƣ nhau ở 16 bit với tốc độ lấy
mẫu là 16kHz (số mẫu/giây).

2.2.4 Phần mềm hỗ trợ
Các thƣ viện có thể hổ trợ cho camera Kinect [47][48][49] nhƣ :OpenNI
(đƣợc sử dụng phổ biến nhất ) , OpenKinect ( Microsoft sản xuất ) , Microsoft
Kinect dành cho hệ điều hành Windows.

2.3 Tính toán độ sâu của Kinect [50]
Cặp cảm biến IR camera và IR projector sẽ phối hợp với nhau để cho ra giá
trị độ sâu ảnh bằng công nghệ Light Coding của PrimeSense.
Khác với kỹ thuật Stereo Camera với việc dùng cặp camera giống nhau để
xây dựng nên bản đồ độ sâu, kỹ thuật Time-Of-Flight (TOF) định nghĩa khoảng
cách bằng ƣớc lƣợng thời gian di chuyển của tia sáng đi và về trong không gian,
kỹthuật Light Coding dùng một nguồn sáng hồng ngoại chiếu liên tục kết hợp với
một camera hồng ngoại để tính toán khoảng cách. Công việc tính toán này đƣợc
thực hiện bên trong Kinect bằng chip PS1080 SoC của PrimeSense. Công nghệ mới
này đƣợc cho là đáp ứng chính xác hơn, giá cả rẻ hơn cho việc sử dụng ở môi
trƣờng trong nhà.
Projector sẽ chiếu một chùm sáng hồng ngoại, tạo nên những đốm sáng ở
không gian phía trƣớc Kinect, tập hợp đốm sáng đƣợc phát ra này 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ạ
(diffraction 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 ra bản đồ độ sâu. Bản


14

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.

Hình 1.7 : Quá trình thu về bản đồ độ sâu của Camera Kinect [48][49][50]

Hình 1.8 : Mẫu hình đƣợc chiếu bởi projector và chụp lại bằng IR camera
[48][49][50]


15

Hình 1.8 cho ta thấy rõ mẫu hình tập hợp các đốm sáng từ Projector và đƣợc
chụp lại bởi IR camera. Để hiểu cách thức Kinect ƣớc lƣợng khoảng cách tới vật thể
trong môi trƣờng nhƣ thế nào, ta quan sát hình 1.8 trong trƣờng hợp phân tích với
một điểm đơn giản.

Hình 1.9 : Tính toán khoảng cách tới một điểm chiếu từ Projector [48][49][50]
Ta giả sử Projector phát đi một tia sáng dọc đƣờng màu xanh lá, nó sẽ đƣợc
chụp lại dƣới dạng một đốm sáng bởi IR camera khi chạm vào bề mặt vật thể trong
không gian.Ta xét ba mặt phẳng ở ba khoảng cách khác nhau: mặt phẳng gần Kinect
(close plane), mặt phẳng ở xa Kinect (distant plane) và mặt phẳng tham chiếu
(reference plane) ở giữa hai mặt phẳng trên. Trong đó, mặt phẳng tham chiếu ngầm
đƣợc biết trƣớc bên trong Kinect với đầy đủ thông tin về khoảng cách. Ngoài ra, ta
cũng đề cập thêm mặt phẳng ảnh (Image Plane) của IR camera là mặt phẳng hình
chiếu của các điểm trong không gian thu về bởi IR camera. Ta xét trong ba

trƣờng hợp khi tia sáng màu xanh lá chạm vào ba điểm trên ba mặt phẳng lần lƣợt là
A, B, C, ba điểm này đƣợc chiếu lên mặt phẳng ảnh tƣơng ứng là A’, B’, C’. Quan
sát vị trí A’, B’ và C’, ta có nhận xét: điểm A càng gần Kinect (hay close plane
càng gần Kinect) thì A’ càng xa B’ về phía bên phải và ngƣợc lại, điểm C càng xa
Kinect (hay distant plane càng xa Kinect) thì C’ càng xa B’ về phía bên trái. Từ đó:


16

khi ta biết trƣớc hƣớng, điểm xuất phát của tia sáng từ Projector và vị trí B’ là hình
chiếu của điểm B trên mặt phẳng tham chiếu lên mặt phẳng ảnh, ta hoàn toàn có thể
tính toán đƣợc độ sâu ảnh hay khoảng cách tới vật thể.
Kinect [48][49] làm điều tƣơng tự với tập hợp các đốm sáng còn lại phát đi từ
projector, với mặt phẳng tham chiếu biết trƣớc .Nó tìm điểm là tâm của đốm sáng
mà IR camera chụp lại đƣợc và điểm tƣơng đồng của đốm sáng đó trên mặt phẳng
tham chiếu (ví dụ: hình 1.8 ta có A và B, C và B là các cặp điểm tƣơng đồng), để
tìm khoảng chênh lệch giữa hai điểm này theo chiều ngang khi chiếu về trên mặt
phẳng ảnh và lƣu ý là giá trị chênh lệch này đƣợc tính bằng đơn vị pixel. Tập hợp
của tất cả các giá trị chênh lệch từ tập hợp đốm sáng, sẽ tạo nên bản đồ độ chênh
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, từ đó mà ta xây dựng đƣợc bản đồ độ sâu (depth map) với giá trị
tính bằng mét thực sự. Tuy nhiên, do tập hợp số lƣợng đốm sáng phát đi từ projector
nhỏ hơn so với tổng số pixel trên mặt phẳng ảnh của IR camera nên một phần giá trị
độ sâu ảnh còn lại sẽ đƣợc nội suy.
Theo tính toán của Nicolas Burrus, một trong những ngƣời mở đƣờng cho
việc tìm hiểu về Kinect [48][49] qua các thí nghiệm của ông. Ông đã công thức hóa
đƣợc quan hệ giữa giá trị khoảng cách thật z tính bằng mét và giá trị độ chênh lệch
d:

Trong đó d là con số nguyên biểu diễn dƣới dạng 11 bit, tức khoảng thay đổi

từ 0÷2047. Với kết quả đo đạc thực nghiệm trên thƣ viện OpenNI, giá trị z biến
thiên trong khoảng 0.5÷6.0 mét và bản đồ độ sâu ổn định trong khoảng 0.5÷5.0 mét.
Do đó, giá trị d thực sự biến thiên trong khoảng từ 434÷1030. Nhƣ vậy, trong không
gian từ 0÷0.5 mét phía trƣớc Kinect, Kinect không thể đƣa về bản đồ độ sâu.


17

2.4 Thƣ viện mã nguồn mở OpenCV
OpenCV [51] (Open Source Computer Vision) là một mã nguồn mở của
Intel viết cho ngành xử lý ảnh. OpenCV gồm các hàm đƣợc xây dựng cho việc xử
lý thị giác máy thời gian thực (Real time computer vision). Các thuật toán xử lý
ảnh thông thƣờng lẫn cao cấp đều đƣợc tối ƣu hóa bởi các nhà phát triển thƣ viện
thành các hàm đơn giản cho ngƣời dùng dễ dàng sử dụng. OpenCV có thể chạy trên
nền tảng Linux, Windows, Mac OS X và hỗ trợ rất nhiều ngôn ngữ nhƣ C/C++,
Python, Ruby, Java...
Ngoài ra Intel còn cung cấp thêm một thƣ viện Intel’s Intergrated
Performance Primitives (IPP) nhằm mục đích tự động tối ƣu hơn nữa trên kiến trúc
của Intel. Tuy nhiên thƣ viện này là bản thƣơng mại của Intel.
Thƣ viện OpenCV có hơn 500 hàm và đƣợc chia thành nhiều lĩnh vực nhƣ
trong an ninh, y tế, robot, xử lý ảnh,…

2.5 Kiến trúc của OpenCV
OpenCV [51] có cấu trúc gồm 5 thành phần chính, 4 thành phần trong số đó
đƣợc thể hiện nhƣ trong hình 1.2.
Thành phần CV bao gồm: Xử lý ảnh , Phân tích cấu trúc , Phân tích và theo
dõi sự chuyển động của đối tƣợng , Nhận dạng mẫu vật , Hiểu chỉnh máy quay và
xây dựng hình ảnh 3D
Thành phần ML(Machine Learning) bao gồm: Normal Bayes Classifier , K
Nearest Neighbors , Support Vector Machines , Decision Trees , Boosting , Random

Trees , Expectation-Maximization , Neural Networks.
Thành phần HighGUI bao gồm: Giao diện GUI cơ bản , Tải và lƣu hình
ảnh , Chức năng nhập xuất video , Các tiện ích và các chức năng hệ thống.
Thành phần CXCore bao gồm: Các cấu trúc dữ liệu cơ bản , Các thao tác
trên mảng , Cấu trúc dữ liệu động , Chức năng vẽ , Lƣu trữ tập tin, đọc, ghi dữ liệu
, Xử lý lỗi và các chức năng hệ thống.
Thành phần CvAux bao gồm: Stereo Correspondence Functions , View
Morphing Functions , 3D Tracking Functions , Eigen Objects (PCA) Functions ,
Embedded Hidden Markov Model Functions.


18

Hình 2.1: Kiến trúc cơ bản của OpenCV [51]
2.6 Các ứng dụng của OpenCV [51]
Sự ra đời của thƣ viện mã nguồn mở OpenCV [51] đã tiết kiệm đƣợc thời
gian cho các lập trình viên với trên 500 phƣơng thức đƣợc lập trình sẵn về: xử lý
hình ảnh và video , lấy hình ảnh, video từ các thiết bị máy ảnh, camera , theo dõi
đối tƣợng.
Dựa trên thƣ viện mã nguồn mở OpenCV đã và đang xây dựng đƣợc rất
nhiều các ứng dụng vào trong thực tế và đa dạng trong các lĩnh vực: y tế, giáo dục,
quốc phòng.. Ví dụ nhƣ : nhận dạng khuôn mặt , nhận dạng vân tay , nhận dạng
biển số xe , phát hiện hình ảnh cụ thể , hiệu chỉnh hình ảnh , phát hiện đối tƣợng
Thƣ viện mã nguồn mở OpenCV có thể lập trình trên nhiều hệ điều hành
khác nhau và cho nhiều ngôn ngữ khác nhau: Window, Linux, Android….Các ngôn
ngữ nhƣ: C/C++ , Java, C#,….


×