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

xây dựng hệ thống tương tác giữa người và máy thông qua nhận dạng cử chỉ bàn tay

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.24 MB, 84 trang )



HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH
o0o



ĐỒ ÁN TỐT NGHIỆP HỆ ĐẠI HỌC
Ngành: Công Nghệ Thông Tin Hệ: Chính Quy
Niên khóa: 2005-2010


Đề Tài:
XÂY DỰNG HỆ THỐNG TƯƠNG TÁC GIỮA
NGƯỜI VÀ MÁY THÔNG QUA NHẬN DẠNG
CỬ CHỈ CỦA BÀN TAY
Mã Số Đề Tài: 09405170061


Sinh viên thực hiện: Lê Xuân Tiến
Mã sinh viên: 405170071
Giáo viên hướng dẫn: ThS. Đào Văn Tuyết





Năm 2009
LỜI CẢM ƠN


Với thời gian làm đề tài tại Phòng Công Nghệ Tri Thức và Công Nghệ Tính Toán
(DFCK) – Viện Cơ Học và Tin Học Ứng Dụng (IAMI), em đã được làm việc trong
một môi trường khoa học, nghiêm túc và thân mật.
Đầu tiên, em xin chân thành cảm ơn đến Ban lãnh đạo Viện Cơ Học và Tin Học Ứng
Dụng, đặc biệt là thầy giáo - Thạc sĩ Đào Văn Tuyết – Trưởng phòng Công Nghệ Tính
Toán và Công Nghệ Tri Thức đã tận tình hướng dẫn, giúp đỡ em trong suốt thời gian
thực tập và tốt nghiệp tại đây.
Em cũng xin gửi lời cảm ơn Khoa Công Nghệ Thông Tin, Học Viện Công Nghệ Bưu
Chính Viễn Thông TP.HCM và thầy-Tiến sĩ Trần Công Hùng đã tạo điều kiện cho
chúng em hoàn tất đồ án tốt nghiệp trong đợt này.
Em xin chân thành cảm ơn các thầy cô của Học Viện Công Nghệ Bưu Chính Viễn
Thông TP.HCM đã cung cấp những kiến thức vững chắc giúp chúng em tự tin hơn khi
gặp phải những vấn đề mới lạ và khó khăn.
Cuối cùng, cho em gửi lời cảm ơn đến gia đình và tất cả những người đã luôn khuyến
khích giúp đỡ em trong quá trình thực hiện đề tài thực tập tốt nghiệp này.
Sinh viên
Lê Xuân Tiến



i

MỤC LỤC

MỤC LỤC i

DANH MỤC CÁC HÌNH VẼ ii

DANH MỤC CÁC BẢNG v


THUẬT NGỮ VIẾT TẮT vi

MỞ ĐẦU vii

CHƯƠNG 1.

TỔNG QUAN 1

1.1

Nhận dạng dáng điệu trong tương tác giữa người-máy 1

1.2

Ứng dụng và những khó khăn 2

1.3

Tổng quan về phương pháp tiếp cận 2

CHƯƠNG 2.

CƠ SỞ LÝ THUYẾT 7

2.1

Nhận dạng hình dáng tĩnh của bàn tay (hand-posture) 7

2.1.1


Mô hình màu 7

2.1.2

Trừ nền bằng mô hình CodeBook 12

2.1.3

Tìm đường viền (contour) và biến đổi hình thái học 20

2.1.4

Phát hiện vùng da 27

2.1.5

Mô tả hình dạng (Shape Descriptor) 27

2.1.6

Tìm láng giềng gần nhất theo phép tính xấp xỉ (ANN) 35

2.1.7

Dynamic Time Warping 39

2.1.8

Phương pháp nhận dạng Support Vector Machine (SVM) 43


2.2

Nhận dạng dáng điệu của tay (hand-gesture) 58

2.2.1

Tìm kiếm theo tỉ lệ vàng (Golden Section Search) 58

2.2.2

Nhận dạng gesture với DTW và GSS 61

CHƯƠNG 3.

THỰC NGHIỆM 64

3.1

Giới thiệu 64

3.2

Công cụ và thiết bị 67

3.2.1

Phần cứng 67

3.2.2


Phần mềm, thư viện và môi trường phát triển 67

3.3

Thiết kế và phát triển 68

3.4

Mục đích và phương pháp 70

3.5

Kết quả thu được 70

KẾT LUẬN 74

TÀI LIỆU THAM KHẢO 75




ii

DANH MỤC CÁC HÌNH VẼ

Hình 1.3-1: Nhận dạng dáng điệu dựa trên Data-glove (trái) và thị giác máy (phải). 2
Hình 1.3-2: Ví dụ hand posture (trái) và hand gesture (phải). 3
Hình 1.3-3: Mô hình tổng quan 3
Hình 1.3-4: Quan sát cảnh nền và phát hiện đối tượng cận cảnh bằng phương pháp trừ
nền 4

Hình 1.3-5: Phát hiện vùng da để xác định vị trí bàn tay, sau đó chuẩn hóa vùng bàn
tay này. 4
Hình 1.3-6: Các bước xử lý của hệ thống 5
Hình 2.1-1: Mô hình màu RGB 7
Hình 2.1-2: Mô hình màu YUV 9
Hình 2.1-3: Mô hình màu HSV 10
Hình 2.1-4: Ảnh màu thành ảnh xám. 11
Hình 2.1-5: Giá trị vùng lấy mẫu theo thời gian 14
Hình 2.1-6: Vị trí 4 điểm lấy mẫu (a) và sự phân phối giá trị điểm ảnh trong không
gian RGB của 4 điểm ảnh (b). 15
Hình 2.1-7: Mô hình màu đề xuất – tách biệt độ biến dạng màu và độ sáng. 16
Hình 2.1-8: Mô hình hóa phát hiện theo lớp. Hình bên trái là ảnh gốc, ở giữa: đối
tượng nền tạm thời; bên phải: đối tượng foreground. 18
Hình 2.1-9: Phát hiện sự thay đổi điều kiện ánh sáng toàn cục 19
Hình 2.1-10: Tìm contour bằng cách lần ngược chiều kim đồng hồ. 20
Hình 2.1-11 : Các chuỗi tín hiệu rời rạc từ biểu diễn theo tham số của contour ở
trên… 21
Hình 2.1-12: Sự khác nhau giữa internal contour và external contour. 22
Hình 2.1-13: Thuật toán dò viền 22
Hình 2.1-14: Mặt nạ chain-code dùng trong thuật toán tìm viền 23
Hình 2.1-15: Biểu diễn contour bằng 8-connected chain-code 23
iii

Hình 2.1-16: Thuật toán tìm viền sử dụng 3 pixel P, C, N tương ứng với pixel trước
thuộc contour, pixel hiện tại, và pixel kế tiếp tại mỗi bước. 24
Hình 2.1-17: Trường hợp đặc biệt khi pixel “tiếp theo” chính là pixel “trước” của
contour 25
Hình 2.1-18: Các thành tố cấu trúc với nhiều hình dạng và kích thước khác nhau. 26
Hình 2.1-19: Ảnh gốc (a) và Thành tố cấu trúc (SE) (b) 26
Hình 2.1-20: Áp dụng toán tử erosion thông qua SE tại các vị trí khác nhau của ảnh

26
Hình 2.1-21: Kết quả áp dụng toán tử dilation 28
Hình 2.1-22: Hệ thống phân loại của các phương pháp tiếp cận trong rút trích đặc
trưng hình dạng. 30
Hình 2.1-23: (a) Shape không có biên bao. (b) (c) 2 shape cùng biên nhưng nội dung
bên trong khác nhau. 31
Hình 2.1-24: (a) mẫu (b) mẫu (a) quay đi 90 độ; (c), (d) là phổ Fourier của (a) và (b).
32
Hình 2.1-25: (a), (c), (d) là các ảnh shape gốc trong không gian tọa độ cực. (b) ảnh tọa
độ cực của (a) được vẽ trong tọa độ Cartesian. 33
Hình 2.1-26: (a), (b) là ảnh tọa độ cực của hai mẫu trong hình minh họa 6.2 (a), (b);
(c), (d) là phổ Fourier của (a) và (b). 36
Hình 2.1-27: Láng giềng xấp xỉ (1 + ϵ) của q 36
Hình 2.1-28: cây k-d và cây bbd. 37
Hình 2.1-29: Cây k-d mẫu 38
Hình 2.1-30: Tìm kiếm xấp xỉ trên cây k-d, với các vùng màu xám không cần xét đến.
39
Hình 2.1-31: Sự khác biệt trong cách khớp các mẫu khi so sánh 2 chuỗi thời gian. 39
Hình 2.1-32: Cách khớp các mẫu của 2 chuỗi thời gian theo DTW. 40
Hình 2.1-33: Ma trận chi phí D với khoảng cách warp path cực tiểu từ D(1,1) đến
D(|X|,|Y|). 41
Hình 2.1-34: Thứ tự mà bảng ma trận chi phí được điền vào 42
Hình 2.1-35: Hai constraint Sakoe-Chuba Band (trái) và Itakura Parallelogram (phải)
43
iv

Hình 2.1-36: Phân chia tuyến tính một tập mẫu thành 2 lớp 44
Hình 2.1-37: Minh họa tính chất của ||w|| 47
Hình 2.1-38: Không thể phân hoạch tập mẫu trên bằng một siêu phẳng 50
Hình 2-39: Một mặt phân chia phi tuyến có thể trở thành một siêu phẳng trong không

gian lớn hơn 51
Hình 2.1-40 Mặt phẳng [-1,1]x[1,-1] trong R2 thành mặt cong trong R3 53
Hình 2.1-41: Đường cong phân chia tập mẫu và các lỗi. 54
Hình 2.1-42: RBF Gaussian kernel có thể chuyển một mặt bất kỳ thành một siêu
phẳng. 55
Hàm 2.1-43: Hàm nhận dạng của SVM 2-vs-rest có giá trị bé nhất, nên mẫu cần nhận
dạng là lớp thứ 2. 55
Hình 2.1-44: SVM loại trừ 56
Hình 2.1-45: Sơ đồ loại trừ trong các tình huống 57
Hình 2.1-46: SVM với nhân linear, polynomial và RBF 59
Hình 2.1-47: Quá trình Golden Section Search 61
Hình 2.1-48: Quay góc khởi đầu về góc 0
o
64
Hình 3.1-1: Mô hình liên kết của hệ thống 64
Hình 3.1-2: Cách thực hiện gesture số 0. 64
Hình 3.1-3: Giao diện chương trình Client. 65
Hình 3.1-4: Quá trình nhận dạng posture của server. 66
Hình 3.1-5: Quá trình trừ nền 66
Hình 3.1-6: Thực hiện morphological filtering, và chuẩn hóa mặt nạ tay thu được bằng
các phép biến đổi hình học như quay, tịnh tiến, tỉ lệ. 67
Hình 3.3-1: UML Sequence Diagram của chương trình 69
Hình 3.5-1: Ra hiệu “Up”, để chuyển lựa chọn lên mục “Pictures + Videos” 70
Hình 3.5-2: Ra hiệu “Left” để chuyển qua mục Picture Library bên trái Play favorites
73
Hình 3.5-3: Ra hiệu “Pop-up Menu” để mở context menu của mục hiện tại. 73

v

DANH MỤC CÁC BẢNG


Bảng 1.3-1: Các lớp mẫu posture của bàn tay 22
Bảng 1.3-2: Các lớp mẫu gesture của bàn tay 22
Bảng 2.1-1: Hàm invert(d) 22
Bảng 2.3.1: Các lớp posture và gesture của hệ thống. 62
Bảng 2.2-2: Thư viện và công cụ dùng để phát triển 66
Bảng 3.5-1: Thông tin cấu hình để giả lập sự kiện bàn phím 66

vi

THUẬT NGỮ VIẾT TẮT

HCI Human-Computer Interaction
DTW

Dynamic Time Warping
ANN Approximate Nearest Neighbor

GSS Golden Section Search
GFD Generic Fourier Descriptor
PFT Polar Fourier Transform
SVM Support Vector Machine
VC Vapnik-Chervonenkis
SRM Structural Risk Minimization
KKT Karush-Kunt-Tucker
ERM Empirical Risk Minimization


vii


MỞ ĐẦU

Hình ảnh tương lai trong phim Minority Report của Steven Spielberg cho chúng ta
thấy, Tom Cruise mở lên một màn hình kỹ thuật số với kích thước bằng bức tường chỉ
đơn giản bằng cách giơ tay lên, đôi bàn tay mang găng màu đen và được kết nối mạng
không dây. Tựa như một người chỉ huy dàn nhạc, anh ta cử động tay trong không trung
để ra hiệu ngắt, chơi tiếp tục, phóng đại và kéo bằng cách lướt tay và xoay cổ tay.
Minority Report xảy ra vào năm 2054. Công nghệ cảm ứng không tiếp xúc mà
Minority Report cho thấy có thể diễn ra sớm hơn nhiều thập niên bởi lẽ ngành thị giác
máy (computer vision) đã đạt được những tiến bộ đáng kể trong những năm gần đây.
Từ xa xưa, ngôn ngữ cơ thể (hay dáng điệu, cử chỉ) luôn kèm theo một ý nghĩa nhất
định, và đóng một vai trò quan trọng trong quá trình trao đổi thông tin. Cử chỉ tay
mang một tình thái bổ sung riêng biệt vào lời nói để bày tỏ những quan điểm. Thông
tin kết hợp với cử chỉ tay trong đối thoại ở góc độ nào đó chính là sự kết hợp tổng thể
không gian và thời gian. Vì vậy, việc tương tác tự nhiên giữa con người và các thiết bị
máy móc có thể đạt được bằng cách sử dụng cử điệu tay trong việc giao tiếp. Cảm ứng
không tiếp xúc sẽ chính là một cuộc cách mạng kế tiếp, sau sự thành công của hệ
thống tương tác bằng cảm ứng đơn điểm hay đa điểm (multi-touch) hiện nay. Hãy thử
tưởng tượng chúng ta điều khiển các thiết bị điện tử trong gia đình mà không cần dùng
đến remote hay điều khiển một thiết bị nào đó mà do điều kiện khách quan khó có thể
nhấn các phím điều khiển (điều khiển robot thông minh, vừa lái xe vừa chỉnh hệ thống
phần mềm-giải trí trong xe,…). Đó quả thực là một viễn cảnh hết sức hấp dẫn và mang
lại nhiều trải nghiệm thú vị.
Cũng chính vì bị hấp dẫn bởi viễn cảnh đó, đề tài này chính là một sự tìm hiểu các
công trình nghiên cứu hiện nay liên quan đến vấn đề trên. Sử dụng những kết quả tìm
hiểu được để xây dựng thử nghiệm một hệ thống tương tác giữa người và ứng dụng
giải trí đa phương tiện Windows Media Center trên máy thông qua các hình ảnh cử chỉ
của một bàn tay thu được từ webcam.
Do đây còn là một vấn đề rất mới với chúng em nên trong quá trình thực hiện đề tài
không tránh khỏi những điểm chưa hoàn chỉnh, kính mong quý thầy cô và các bạn

đóng góp ý kiến để đề tài được hoàn thiện hơn.
Em xin chân thành cảm ơn.
Báo cáo Đồ án tốt nghiệp Chương 1. Tổng quan
1
Lê Xuân Tiến – Đ05THA1
“If I have seen further than others, it is by standing upon the shoulders of giants.”

Isaac Newton
CHƯƠNG 1. TỔNG QUAN
1.1 Nhận dạng dáng điệu trong tương tác giữa người-máy
Từ xa xưa, ngôn ngữ cơ thể (hay dáng điệu) luôn kèm theo một ý nghĩa nhất định và
đóng một vai trò quan trọng trong quá trình trao đổi thông tin. Ngôn ngữ cơ thể, đặc
biệt là ngôn ngữ bàn tay ngày càng được xem là một trong những phương pháp tương
tác giữa người với máy (human-computer interaction) rất tự nhiên và trực quan.
Phương pháp tương tác với máy dựa trên dáng điệu được ứng dụng lầu đầu tiên vào
năm 1963 bởi Ivan Sutherland. Đây là tiền thân của những phương pháp dáng điệu dựa
trên nét (stroke-based), sử dụng một bút phát sáng để điều khiển các đối tượng trên
màn hình. Phương pháp này đã khơi nguồn cho những phương pháp nhập liệu ký tự
trên các thiết bị di động, PDA và các thiết bị tương tác thông qua bút (pen-based) ngày
nay.
Kể từ đó, tương tác bằng cử chỉ ngày càng nhận được nhiều sự quan tâm của các nhà
nghiên cứu. Wexelblat (1995), Quek (1994), Sturman cùng cộng sự của ông sử dụng
một găng tay có các bộ cảm biến về vị trí và chuyển động để phát triển các chương
trình tương tác thực tại ảo (virtual reality), cho phép điều khiển các đối tượng số bằng
các chuyển động tự nhiên của đôi tay. Giữa những năm 1980, thị giác máy (computer
vision) ngày càng được chú ý trong ngành khoa học máy tính, tuy nhiên mãi đến năm
1995, Freeman và Weissman (1995) mới lần đầu tiên công bố hệ thống điều khiển âm
lượng và kênh trong tivi dựa trên thị giác máy (vision-based).
Ở nước ta, lĩnh vực nghiên cứu về tương tác người - máy đã bắt đầu nhận được những
sự quan tâm nhất định trong thời gian gần đây như việc thành lập phòng thí nghiệm

“Tương tác người-máy” của Đại học Công Nghệ Hà Nội vào tháng 6/2008.
Mặc dù công trình nghiên cứu ở trên đã vạch ra một hướng mới về cách con người
tương tác với máy mà không phải dùng thiết bị điều khiển. Chúng ta sử dụng chính
ngôn ngữ cơ thể rất trực quan và gần gũi để tương tác với môi trường xung quanh. Tuy
vậy, ngày nay tương tác không chạm dựa trên thị giác máy vẫn còn nhiều khó khăn
trong việc áp dụng vào môi trường thực tế. Vì thế, nó vẫn đang là một chủ đề đầy thú
vị, thử thách nhiều nhà nghiên cứu.



Báo cáo Đồ án tốt nghiệp Chương 1. Tổng quan
2
Lê Xuân Tiến – Đ05THA1
1.2 Ứng dụng và những khó khăn
Nhận dạng ngôn ngữ cơ thể có thể được ứng dụng trong nhiều lĩnh vực như: thực tại
ảo, điều khiển robot, tay cơ khí tự động, ngôn ngữ tay của người khiếm thị, điều khiển
các thiết bị điện tử trong gia đình, các hệ thống giải trí và âm nhạc, Nó mang đến
cho chúng ta những phương pháp mới trong việc tương tác với thế giới xung quanh.
Tuy có một tương lai rất hứa hẹn nhưng việc xây dựng các hệ thống tương tác người-
máy dựa trên dáng điệu cơ thể vẫn còn rất nhiều khó khăn thực tế, đặc biệt là các hệ
thống dựa trên thị giác máy (computer-vision based). Bởi môi trường của người điều
khiển là động và phức tạp, bị chi phối bởi nhiều yếu tố như điều kiện ánh sáng, phông
nền… Vì vậy việc tách đối tượng quan tâm ra khỏi cảnh nền hay còn gọi là trừ nền
(background subtraction) để có thể phân tích chuyển động một cách chính xác hơn
hoặc nhận diện vùng da (skin detection), nhận dạng hình dáng của bàn tay, … vẫn còn
là một thách thức đối với nhiều nhà nghiên cứu.
1.3 Tổng quan về phương pháp tiếp cận
Vấn đề chính trong việc tương tác thông qua dáng điệu đó là làm sao cho máy có thể
“hiểu” được các ngôn ngữ cơ thể này. Những cách tiếp cận cho bài toán trên thường
được chia làm hai loại: “dựa vào dữ liệu thu được từ các cảm biến trên găng tay”

(Data-Glove based) và “dựa trên thị giác máy” (Vision-Based). Trong mỗi phương
pháp tiếp cận lại có hai vấn đề con đó là: Nhận dạng dáng điệu bàn tay tĩnh - tức hình
dạng của tay (posture) và nhận dạng chuyển động của bàn tay (dynamic hand
gestures).



Hình 1.3-1: Nhận dạng dáng điệu dựa trên Data-glove (trái) và thị giác máy (phải).
Báo cáo Đồ án tốt nghiệp Chương 1. Tổng quan
3
Lê Xuân Tiến – Đ05THA1

Hình 1.3-2: Ví dụ về hand posture (trái) và hand gesture (phải).
Tiếp cận dùng “data-glove” mặc nhiên phải có găng tay cảm biến mắc tiền và cũng
làm mất đi phần nào ý nghĩa của việc điều khiển thông qua dáng điệu của tay, đó là
dùng ngôn ngữ bàn tay để tương tác mà không cần phải sử dụng một thiết bị trợ giúp
nào gắn kèm. Vì vậy đề tài này tiếp cận theo hướng dựa trên thị giác máy với mô hình
tổng quan như sau:

Hình 1.3-3: Mô hình tổng quan
Ảnh đầu vào thu được từ webcam sẽ được xử lý bằng các thuật toán xử lý ảnh, sau đó
tiến hành rút trích đặc trưng (feature extraction) để nhận dạng posture và gesture dựa
vào các dữ liệu là các mẫu đã được huấn luyện.
Như vậy giả sử rằng ảnh đầu vào chỉ có duy nhất một bàn tay ở một thời điểm, đầu
tiên ta sẽ phải phát hiện xem bàn tay nằm ở vị trí nào trong bức ảnh. Vì ảnh bàn tay sẽ
chồng lấp với ảnh của cảnh nền nên việc xử lý sẽ rất khó khăn, do đó ta dùng phương
pháp trừ nền (background subtraction) để loại bỏ phông nền trong quá trình phát hiện
bàn tay nhằm giảm độ phức tạp. Chương trình sẽ quan sát cảnh nền một thời gian, khi
có đối tượng mới đi vào nó sẽ so sánh và tách được đối tượng cận cảnh này
(foreground). Khi đó ta chỉ tập trung tìm kiếm bàn tay trên vùng foreground như hình

minh họa sau.

Hình 1.3-4: Quan sát cảnh nền và phát hiện đối tượng cận cảnh bằng phương pháp
trừ nền.
Báo cáo Đồ án tốt nghiệp Chương 1. Tổng quan
4
Lê Xuân Tiến – Đ05THA1
Công việc tiếp theo đó là phát hiện bàn tay trong vùng đối tượng cận cảnh, vì bàn tay
sẽ gắn liền với phần cánh tay nên việc tách bàn tay ra khỏi vùng cánh tay là một điều
không dễ mà hiện nay vẫn chưa có một thuật toán nào giải quyết được hiệu quả. Do
đó, ta giới hạn độ phức tạp của đề tài thông qua việc giả sử người đó mặc áo dài tay,
lúc này chỉ cần dùng thủ tục phát hiện da (skin detection) trên đối tượng cận cảnh thì
sẽ tìm được vị trí vùng bàn tay.

Hình 1.3-5: Phát hiện vùng da để xác định vị trí bàn tay, sau đó chuẩn hóa vùng bàn
tay này.
Sau khi xác định được vị trí vùng bàn tay như Hình 1.3-5, ta sẽ phân loại xem hình
dáng bàn tay (posture) này thuộc về lớp nào bằng cách tìm K hình giống với nó nhất
trong cơ sở dữ liệu của chương trình. Hai hình dạng được xem là càng giống nhau khi
khoảng cách DTW theo đặc trưng rút trích được từ phương pháp Fourier Descriptor
càng nhỏ. Khi đó ta sẽ xác định lớp của mẫu thử dựa vào lớp của các hình giống nó
nhất. Hiện tại, trong cơ sở dữ liệu của chương trình có gần 1000 mẫu được chia làm 12
lớp như bảng 1.3-1 ở bên dưới, việc tính khoảng cách DTW giữa mẫu thử với lần lượt
tất cả các mẫu này sẽ làm chương trình xử lý rất chậm và không đáp ứng theo thời gian
thực được. Do đó, ta sẽ tiến hành tìm K láng giềng gần nhất bằng phép tính xấp xỉ
(ANN), sau đó chỉ tính khoảng cách DTW đến K láng giềng này.













0 1 2 3 4 5 6 7 8 9 10 11
Bảng 1.3-1: Các lớp mẫu posture của bàn tay
Kết thúc các bước trên, chương trình đã có thể nhận dạng được hình dáng tĩnh của bàn
tay (posture). Trong quá trình nhận dạng posture, ta lưu lại tọa độ của bàn tay, tập hợp
các tọa độ này theo thời gian chính là một chuyển động của bàn tay (gesture). Tập tọa
độ theo thời gian trên sẽ được chuyển vào thủ tục nhận dạng hình dáng chuyển động.
Ở đây, ta dùng phương pháp One Dollar và khoảng cách DTW giữa tập tọa độ này đến
lần lượt các mẫu chuyển động trong cơ sở dữ liệu của chương trình.






0 1 2 3 4 5
Bảng 1.3-2: Các lớp mẫu gesture của hệ thống.
Như vậy, trình tự các bước xử lý của chương trình được tóm tắt lại như sau:
Báo cáo Đồ án tốt nghiệp Chương 1. Tổng quan
5
Lê Xuân Tiến – Đ05THA1

Hình 1.3-6: Các bước xử lý của hệ thống

Các phần tiếp theo trong chương 2 này sẽ trình bày lần lượt các thuật toán sử dụng
trong các bước xử lý ở trên theo trình tự xử lý của hệ thống:
Mục 2.2 trình bày về các phương pháp dùng để phát hiện và nhận dạng hình dáng tĩnh
của bàn tay như: trừ nền, phát hiện vùng da, tách viền, fourier descriptor, tìm k láng
giềng gần nhất, DTW, SVM.
Mục 2.3 trình bày các phương pháp nhận dạng dáng điệu cử động của bàn tay như
GSS và DTW.
Chương 3 là phần thực nghiệm, tập trung vào việc thiết kế và phát triển hệ thống này,
giới thiệu các thư viện, môi trường phát triển, các giao thức, sơ đồ thiết kế và trình bày
các kết quả thu được…
Cuối cùng là phần kết luận, tóm tắt lại các kết quả cũng như các điểm hạn chế và
hướng phát triển tiếp theo.

Báo cáo Đồ án tốt nghiệp
6
Lê Xuân Tiến – Đ05THA1



Một góc phố cổ Hà Nội

Tranh của danh họa Bùi Xuân Phái (1920-1988)
Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
7
Lê Xuân Tiến – Đ05THA1
“He who loves practice without theory is like the sailor who boards ship without a rudder and
compass and never knows where he may cast.”
– Leonardo da Vinci
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Nhận dạng hình dáng tĩnh của bàn tay (hand-posture)

Trong phần này sẽ giới thiệu những phương pháp, thuật toán dùng để nhận dạng hình
dáng tĩnh của bàn tay hay còn gọi là hand-posture.
2.1.1 Mô hình màu
2.1.1.a Khái niệm
Tổ chức quốc tế về chuẩn hóa màu CIE (Commission Internationale d’Eclairage) đưa
ra một số chuẩn để biểu diễn màu. Các hệ này có các chuẩn riêng. Hệ chuẩn màu CIE-
RGB dùng 3 màu cơ bản R, G, B và ký hiệu RGB
CIE
để phân biệt với các chuẩn khác.
Như đã nêu trên, một màu là tổ hợp của các màu cơ bản theo một tỷ lệ nào đó. Như
vậy, mỗi pixel ảnh màu ký hiệu P
x
, được viết: (T: trong công thức dưới đây là ký hiệu
chuyển vị) .
P
x
= [red, green, blue]
T

Người ta dùng hệ tọa độ ba màu R-G-B (tương ứng với hệ tọa độ x-y-z) để biểu diễn
màu như sau:

Hình 2.1-1: Mô hình màu RGB
Trong cách biểu diễn này ta có công thức:
đỏ + lục + lơ =1
Công thức này gọi là công thức Maxwell. Trong hình trên, tam giác tạo bởi ba đường
đứt đoạn gọi là tam giác Maxwell. Màu trắng trong hệ tọa độ này được tính bởi:
trắng
CIE
= (đỏ

CIE
+ lục
CIE
+ lơ
CIE
) = 1
Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
8
Lê Xuân Tiến – Đ05THA1
2.1.1.b Biến đổi mô hình màu
Mô hình màu do CIE đề xuất có tác dụng như một hệ quy chiếu và không biểu diễn hết
các màu. Trên thực tế, phụ thuộc vào các ứng dụng khác nhau người ta đưa ra các mô
hình biểu diễn màu khác nhau. Thí dụ:
- Mô hình NTSC: dùng 3 màu R, G, B áp dụng cho màn hình màu, ký hiệu RGB
NTSC

- Mô hình CMY (Cyan Magenta Yellow): thường dùng cho in ảnh màu
- Mô hình YIQ: cho truyền hình màu

Việc chuyển đổi giữa các không gian biểu diễn màu được thực hiện theo nguyên tắc
sau:
Nếu gọi χ là không gian biểu diễn các màu ban đầu; χ’ không gian biểu diễn màu mới;
A là ma trận biểu diễn phép biến đổi. Ta có quan hệ sau:
χ’ = Aχ

Ví dụ, biến đổi mô hình màu RGB
CIE
sang mô hình màu RGB
NTSC
ta có các véctơ

tương ứng:

ܲ

=

ܴ
஼ூா

಴಺ಶ

಴಺ಶ

ܲ
௫ᇱ
=

ܴ
ே்ௌ஼

ಿ೅ೄ಴

ಿ೅ೄ಴



Công thức chuyển đổi được viết dưới dạng ma trận như sau:


ܴ

஼ூா
ܩ
஼ூா
ܤ
஼ூா

=

1.167 −0.146 −0.151
0.114 0.753 0.159
−0.001 0.059 1.128
൩൥
ܴ
ே்ௌ஼
ܩ
ே்ௌ஼
ܤ
ே்ௌ஼






Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
9
Lê Xuân Tiến – Đ05THA1
2.1.1.c Mô hình YUV
Mô hình YUV qui định một không gian màu được tạo bởi một độ sáng và hai thành
phần màu (chrominance). YUV được sử dụng trong hệ thống phát sóng truyền hình

theo chuẩn PAL, đây là chuẩn ở phần lớn các nước.

Hình 2.1-2: Mô hình màu YUV
Mô hình YUV giúp tạo ra màu đúng với nhận thức của con người hơn chuẩn RGB, là
loại được dùng trong các thiết bị đồ họa máy tính, nhưng không chuẩn bằng không
gian màu HSV.
Y đại diện cho thành phần độ sáng, U và V là đại diện cho các thành phần màu. Không
gian màu YCbCr hay YPbPr, được sử dụng trong các thiết bị phát hình, đều xuất phát
từ nó (Cb/Pb và Cr/Pr là những phiên bản biến thể của U và V), và đôi khi bị gọi một
cách không chính xác là "YUV". Không gian màu YIQ được dùng trong các hệ thống
truyền hình NTSC cũng liên quan đến nó, tuy nhiên lại đơn giản hơn nó nhiều.
Các tín hiệu YUV đều xuất phát từ các nguồn RGB. Các giá trị trọng số của R, G và B
được cộng lại với nhau để tạo ra một tín hiệu Y đơn, để biểu diễn độ sáng chung tại
một điểm đó. Tín hiệu U sau đó được tạo ra bằng cách trừ Y khỏi tín hiệu xanh lam (B
của RGB), và được nhân với một tỉ lệ có sẵn; còn V được tính bằng cách trừ Y khỏi
màu đỏ (R của RGB), và nhân tỉ lệ với một hệ số khác.

Các công thức sau có thể dùng để tính toán Y, U và V từ R, G và B:

ܻ
ܷ
ܸ

=

0.299 0.587 0.114
−0.147 −0.289 0.436
0.615 −0.515 −0.100
൩൥
ܴ

ܩ
ܤ





Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
10
Lê Xuân Tiến – Đ05THA1
2.1.1.d Mô hình màu HSV
Không gian màu HSB, còn gọi là không gian màu HSV, là một không gian màu dựa
trên ba số liệu:
* H: (Hue) Vùng màu
* S: (Saturation) Độ bão hòa màu
* B (hay V): (Bright hay Value) Độ sáng


Hình 2.1-3: Mô hình màu HSV







Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
11
Lê Xuân Tiến – Đ05THA1
2.1.1.e Chuyển ảnh màu thành ảnh xám

Đơn vị tế bào của ảnh số là pixel. Tùy theo mỗi định dạng là ảnh màu hay ảnh xám mà
từng pixel có thông số khác nhau. Đối với ảnh màu từng pixel sẽ mang thông tin của
ba màu cơ bản tạo ra bản màu khả kiến là Đỏ (R), Xanh lá (G) và Xanh biển (B).
Trong mỗi pixel của ảnh màu, ba màu cơ bản R, G và B được bố trí sát nhau và có
cường độ sáng khác nhau. Thông thường, mổi màu cơ bản được biểu diễn bằng 8 bit
tương ứng 256 mức độ màu khác nhau.
Như vậy mỗi pixel chúng ta sẽ có 2
8x3
màu (khoảng 16.78 triệu màu). Đối với ảnh
xám, thông thường mỗi pixel mang thông tin của 256 mức xám (tương ứng với 8 bit)
như vậy ảnh xám hoàn toàn có thể tái hiện đầy đủ cấu trúc của một ảnh màu tương ứng
thông qua tám mặt phẳng bit theo độ xám.
Trong hầu hết quá trình xử lý ảnh, chúng ta chủ yếu chỉ quan tâm đến cấu trúc của ảnh
và bỏ qua ảnh hưởng của yếu tố màu sắc. Do đó bước chuyển từ ảnh màu thành ảnh
xám là một công đoạn phổ biến trong các quá trình xử lý ảnh vì nó làm tăng tốc độ xử
lý là giảm mức độ phức tạp của các thuật toán trên ảnh.
Chúng ta có công thức chuyển các thông số giá trị màu của một pixel thành mức xám
tương ứng như sau:
G=α.C
R
+β.C
G
+δ.CB
G

Trong đó các giá trị C
R
, C
G
và C

B
lần lượt là các mức độ màu Đỏ, Xanh lá và Xanh
biển của pixel màu. Các hệ số α, β, và δ là các giá trị thay đổi tùy thuộc hệ màu. Với
hệ mày RGB ta có α = 0.3, β = 0.59, δ = 0.11

Hình 2.1-4: Ảnh màu thành ảnh xám.





Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
12
Lê Xuân Tiến – Đ05THA1
2.1.2 Trừ nền bằng mô hình CodeBook
Đây là một thuật toán phân tách phông nền và đối tượng cận cảnh thời gian thực. Các
giá trị tại mỗi điểm ảnh của phông nền được lượng tử hóa vào các codebook (CB) là
một dạng nén của nền trong một chuỗi ảnh. Việc này giúp ta lưu sự thay đổi có cấu
trúc của phông nền trong một thời gian dài khi điều kiện bộ nhớ giới hạn. So với
những thuật toán khác thì codebook hiệu quả về không gian nhớ và tốc độ. CB làm
việc được trong những cảnh có nền lay động hoặc điều kiện ánh sáng thay đổi.
2.1.2.a Giới thiệu
Việc tách các đối tượng di chuyển trong một chuỗi video thu được từ một camera tĩnh
là bước đầu tiên trong bài toán giám sát. Cách tiếp cận phổ biến và đơn giản nhất đó là
trừ nền. Ý tưởng của việc trừ nền chính là trừ ảnh hiện tại cho một mô hình phông nền
tham chiếu. Kết quả của phép trừ này sẽ cho ta các đối tượng mới xuất hiện hoặc là
không đứng yên.
Một mô hình nền đơn giản nhất sẽ giả sử rằng độ sáng của mỗi điểm ảnh có thể được
mô hình hóa bằng một phân phối đơn mốt (unimodal distribution). Hạn chế của mô
hình trên là không thể giải quyết vấn đề đa nền, ví dụ như cảnh nền có một hàng cây

lung lay trong gió. Mô hình MOG (Mixture of Gaussians) được đưa ra để xử lý các
nền không tĩnh và phức tạp. Tuy vậy MOG cũng có vài điểm yếu đó là khó mô hình
hóa các điều kiện biến đổi nhanh. Ngoài ra, do phụ thuộc vào việc tốc độ học cần thích
ứng với sự thay đổi của nền, nên tốc độ học chậm thì sẽ khó phát hiện những thay đổi
đột ngột, còn tốc độ học nhanh thì các chuyển động chậm sẽ dễ bị bỏ sót. Để giải
quyết những vấn đề này, kỹ thuật không tham biến (non-parametric technique) sẽ ước
lượng hàm mật độ xác suất tại mỗi điểm ảnh từ rất nhiều mẫu đã được đề xuất. Mô
hình có thể thích nghi với những sự thay đổi nhanh trong nền và phát hiện các đối
tượng với độ nhạy cao. Kỹ thuật không tham biến ít hiệu quả nếu lấy mẫu nền trong
một thời gian dài do ràng buộc về không gian nhớ. Thuật toán CB sẽ xây dựng mô
hình nền được nén ở tỉ lệ cao nên sẽ vượt qua vấn đề trên.
2.1.2.b Phát hiện và mô hình hóa nền
Thuật toán CB sử dụng kỹ thuật lượng tử hóa/gom cụm của Kohonen để xây dựng mô
hình nền từ việc quan sát một dãy dài liên tiếp. Với mỗi điểm ảnh, nó sẽ tạo một
codebook bao gồm một hoặc nhiều codeword. Các mẫu tại mỗi điểm ảnh được gom
nhóm vào tập những codeword dựa vào metric biến dạng màu cùng biên của độ sáng.
Quá trình phát hiện nền sẽ kiểm tra sự khác biệt giữa ảnh hiện tại và mô hình nền dựa
vào độ lệch của màu và độ sáng. Một điểm ảnh sẽ được phân loại thuộc nền nếu nó
thỏa 2 điều kiện:
1. biến dạng màu của một số codeword bé hơn ngưỡng.
2. độ sáng nằm trong khoảng độ sáng của codeword
ngược lại nó sẽ được xếp vào foreground.
Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
13
Lê Xuân Tiến – Đ05THA1
Thuật toán khởi tạo codebook:
Đặt X là một chuỗi huấn luyện cho mỗi điểm ảnh bao gồm N RGB vectơ:
X = {x
1
, x

2
, , x
N
}
C = {c
1
, c
2
, , c
L
} là codebook gồm có L codeword của điểm ảnh. Mỗi điểm ảnh sẽ có
kích thước codebook khác nhau phụ thuộc vào sự biến thiên của mẫu.
Mỗi codeword c
i
, i=1 L, chứa một vectơ RGB v
i
= (R
i
, G
i
, B
i
) và một tập 6 biến aux
i

= (I
i
min
, I
i

max
, f
i
, λ
i
, p
i
, q
i
). Tập aux
i
chứa các biến về giá trị độ sáng và thời gian:
Ĭ
i
, Î
i
Là độ sáng cực tiểu và cực đại của tất cả những điểm ảnh được gán vào
codeword này.
f Tần số xuất hiện của codeword.
λ Maximum negative run-length (MNRL) chính là khoảng thời gian lâu
nhất trong suốt giai đoạn huấn luyện mà codeword không lặp lại.
p, q Thời gian truy cập lần đầu tiên và cuối cùng của codeword đó.

Trong suốt giai đoạn huấn luyện, giá trị x
t
được lấy mẫu tại thời điểm t sẽ được so
sánh với codebook hiện tại để xác định xem nếu có codeword c
m
nào khớp không
(m là chỉ số của codeword). Ta dùng codeword này như là xấp xỉ mã hóa của mẫu

(sample’s encoding approximation). Để biết đâu là codeword khớp nhất, ta dùng độ
biến dạng màu và biên giới hạn của độ sáng, chi tiết thuật toán như sau:

I. L ← 0
l
, C ← {} (tập rỗng)
II. for t =1 to N do
(i) x
t
= (R, G, B), I ←

ܴ

+ ܩ

+ ܤ


(ii) Tìm codeword c
m
trong C = {c
i
|1≤ i ≤ L} khớp với x
t
dựa trên 2 điều
kiện:
(a) colordist(x
t
, v
m

) ≤ ε
1

(b) brightness(I, <Ĭ
m
, Î
m
>) = true
(iii) Nếu C = {} hoặc không khớp thì L ← L + 1. Tạo một codeword mới c
L

và đặt
v
L
← (R, G, B)
aux
L
← <I, I, 1, t-1, t, t>
(iv) Ngược lại, cập nhật codeword c
m
đã khớp:
ݒ







ାோ



ାଵ
,




ାோ


ାଵ
,




ାோ


ାଵ


ܽݑݔ



min

ܫ,Ĭ



,max

ܫ,Î




+ 1,max

ߣ

,ݐ− ݍ


,p

,t


end for
III. Cho mỗi codeword c
i
, i=1, , L cập nhật lại
ߣ


max


ߣ

,

ܰ

ݍ

+
݌


1ሻ



Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
14
Lê Xuân Tiến – Đ05THA1
Hai điều kiện (a) và (b) trong bước II (ii) (sẽ được làm rõ hơn ở biểu thức (2,3) ở bên
dưới) thỏa mãn khi màu của x
t
và c
m
là đủ “gần” và độ sáng của x
t
nằm trong giới hạn
chấp nhận được của c
m
. Thay vì tìm láng giềng gần nhất, ta chỉ cần tìm codeword đầu

tiên thỏa 2 điều kiện này, ε
1
là ngưỡng lấy mẫu (băng thông). Để tăng tốc độ của thuật
toán ta có thể sắp xếp các codeword theo thứ tự được cập nhật gần nhất lên đầu danh
sách codebook. Các codeword khớp thường là các codeword nằm ở đầu danh sách vì
vậy việc sắp xếp này giúp quá trình so khớp hiệu quả hơn.
Maxium negative run-length
Nền thật bao gồm các điểm ảnh tĩnh và các điểm ảnh nền động, thường là tựa tuần
hoàn (quasi-periodic) – tức các giá trị lặp lại trong một khoảng thời gian nào đó. Điều
này thúc đẩy tiêu chuẩn thời gian cùa MNRL (λ), được định như là khoảng thời gian
lớn nhất mà codeword không lặp lại trong giai đoạn huấn luyện. Ví dụ trong hình minh
họa 2.1-5, một điểm ảnh nằm trên rìa của chiếc lá cây được lấy mẫu và biểu đồ hóa sự
biến thiên độ sáng theo thời gian. Codeword của màu trời có ߣ rất nhỏ, khoảng 15, của
màu lá cây là 100. Tuy nhiên, codeword của cơ thể người lại có ߣ rất lớn, 280.
Đặt M và T
M
là mô hình nền (đã được lọc thời gian) và giá trị ngưỡng. Thông thường,
chọn T
m
bằng phân nửa số frame huấn luyện, N/2
M = {c
m
| c
m
ϵ C và λ
m
≤ T
M
}
Hình 2.1-5: Giá trị vùng lấy mẫu theo thời gian

Màu sắc và độ sáng
Để giải quyết vấn đề thay đổi sự chiếu sáng toàn cục hoặc cục bộ như bóng của đối
tượng, điểm sáng, thuật toán dùng màu đã được chuẩn hóa (tỉ suất màu). Độ sáng được
sử dụng như là một nhân tố trong việc so sánh các tỉ suất màu. Vì vậy chúng ta sẽ quan
sát sự thay đổi giá trị của điểm ảnh theo thời gian dưới sự biến đổi của điều kiện sáng.
Trong hình minh họa 2.1-6 (b) cho thấy sự phân phối giá trị điểm ảnh trong không
gian RGB của 4 điểm ảnh được lấy mẫu từ color-char ở Hình 2.1-6(a). Điều kiện ánh
sáng đã được tăng/giảm để làm cho các điểm ảnh tối hoặc sáng hơn. Các giá trị điểm
ảnh hầu như phân phối theo hình dạng thon dài theo trục hướng về tọa độ gốc (0, 0, 0).
Dựa vào các quan sát này, ta phát triển một mô hình màu được miêu tả trong hình
Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
15
Lê Xuân Tiến – Đ05THA1
minh họa 2.1-7. Mô hình này sẽ xem các giá trị của điểm ảnh thuộc nền nằm dọc theo
các trục chính của codeword thuộc biên thấp và cao của độ sáng. Khi ta có một điểm
ảnh đầu vào x
t
=(R, G, B) và codeword c
i
với v
i
= (R
i
, G
i
, B
i
),
||x
t

||
2
= R
2
+ G
2
+ B
2

||v
i
||
2
= R
i
2
+ G
i
2
+ B
i
2

<x
t
, v
i
>
2
= (R

i
R + G
i
G + B
i
B)
2

Độ biến dạng màu δ được tính như sau:
݌

=

ݔ



ܿ݋ݏ

ߠ=

ݔ






ݒ





ܿ݋݈݋ݎ݀݅ݏݐ

ݔ




= ߜ=


ݔ



− ݌



Hình 2.1-6: Vị trí 4 điểm lấy mẫu (a) và sự phân phối giá trị điểm ảnh trong không
gian RGB của 4 điểm ảnh (b).

Báo cáo Đồ án tốt nghiệp Chương 2 Cơ sở Lý thuyết
16
Lê Xuân Tiến – Đ05THA1

Hình 2.1-7: Mô hình màu đề xuất – tách biệt độ biến dạng màu và độ sáng.
Ta đặt Î và Ĭ chính là max và min của độ sáng tất cả những điểm ảnh được gán vào

codeword. Để chấp nhận sự thay đổi của độ sáng trong một phạm vi nhất định giới hạn
trong mức bóng và mức điểm sáng ta cho [I
low
, I
hi
] cho mỗi codeword như sau:
I
low
= αÎ , I
hi
= ݉݅݊

ߚÎ,
Ĭ


với α<1, β>1
Thông thường chọn α trong khoảng [0.4, 0.7], β ϵ [1.1, 1.5].
Brightness(I, <Ĭ, Î>) =

ݐݎݑ݁ ,݊ếݑ ܫ
௟௢௪


ݔ


≤ܫ
௛௜
݂݈ܽݏ݁,݊݃ượܿ ݈ạ݅



Thuật toán trừ nền
Để phát hiện foreground (cận cảnh) ta trừ ảnh hiện tại cho mô hình nền. Toán tử trừ
nền BGS(x) cho một điểm ảnh đầu vào x thuộc tập kiểm thử được định nghĩa như sau:
I. x = (R, G, B), I ←

ܴ

+ ܩ

+ ܤ


II. Với tất cả những codeword thuộc M, tìm codeword c
m
khớp với x
t
dựa trên
2 điều kiện:
(a) colordist(x, c
m
) ≤ ε
2

(b) brightness(I, <Ĭ
m
, Î
m
>) = true

Cập nhật codeword đã khớp như bước II (iv) trong phần thuật toán xây dựng
codebook.
III. ܤܩܵ

ݔ

=

݂݋ݎ݁݃ݎ݋ݑ݊݀ ݊ếݑ ݇ℎô݊݃ ݇ℎớ݌
ܾܽܿ݇݃ݎ݋ݑ݊݀,݊݃ượܿ ݈ạ݅


ε
2
là ngưỡng phát hiện. Một điểm ảnh sẽ được xem là thuộc foreground nếu không tìm
thấy 1 codeword nào thỏa 2 điều kiện trên, ngược lại nó sẽ được phân loại thuộc nền.

×