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

Phát hiện bàn tay sử dụng đặc trưng internal haar like và thông tin ngữ cảnh trong hệ thống tương tác người robot

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 (3.17 MB, 85 trang )

LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn và sâu sắc nhất đến thầy Nguyễn
Văn Tới, người đã tận tình chỉ bảo và hướng dẫn em trong suốt quá trình học
tập và thực hiện đồ án tốt nghiệp. Thầy đã giúp đỡ, dạy bảo em không chỉ về
mặt kiến thức, mà còn là những kỹ năng để học tập và làm việc. Đó là những
bài học kinh nghiệm quý báu sẽ đồng hành cùng em trên suốt chặng đường
học tập, nghiên cứu và làm việc sau này.
Em xin được gửi lời cảm ơn đến các thầy cô giáo của trường Đại học
Công nghệ Thông tin và Truyền thông Thái nguyên đã giảng dạy, truyền đạt
cho em những kiến thức tốt nhất, những kỹ năng sống. Đó là nền tảng để em
vững bước trên chặng đường sau này của mình.
Cuối cùng em xin gửi lời cảm ơn tới bố mẹ, gia đình, bạn bè, những
người đã luôn bên cạnh em trong mọi hoàn cảnh, tạo cho em những điều kiện
tốt nhất để em có thể phát huy, tìm hiểu những đam mê, sở thích của mình
trong các lĩnh vực.

Thái Nguyên, tháng 6 năm 2016
Người thực hiện

Nguyễn Huy Hoàng

1


LỜI CAM ĐOAN
Đồ án tốt nghiệp là sản phẩm tổng hợp toàn bộ kiến thức mà em đã học
và nghiên cứu trong suốt thời gian học tập tại trường đại học. Ý thức được
điều đó, với tinh thần làm việc nghiêm túc, tự giác cùng sự lao động miệt mài
của bản thân và sự hướng dẫn nhiệt tình chu đáo của thầy giáo Nguyễn Văn
Tới, em đã hoàn thành đồ án tốt nghiệp của mình.
Em xin cam đoan về nội dung của đồ án:“Phát hiện bàn tay sử dụng



đặc trưng Internal Haar- Like và thông tin ngữ cảnh trong hệ thống
tương tác người - Robot” là do em tự tìm hiểu, nghiên cứu dưới sự hướng
dẫn của thầy giáoNguyễn Văn Tới. Mọi trích dẫn và tài liệu mà em tham khảo
đều được ghi rõ nguồn gốc.
Nếu mọi thông tin sai lệch em xin chịu mọi hình thức kỷ luật của trường
Đại học Công nghệ thông tin và Truyền thông.
Thái Nguyên, tháng 06 năm 2016
Sinh viên thực hiện

Nguyễn Huy Hoàng

2


MỤC LỤC
LỜI CẢM ƠN
1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC HÌNH ẢNH 4
LỜI NÓI ĐẦU
6
CHƯƠNG I: TỔNG QUAN VỀ TƯƠNG TÁC NGƯỜI - MÁY
8
1.1 Giới thiệu chung về lĩnh vực tương tác người – máy
8
1.2 Hệ thống tương tác người máy
8
1.3 Thị giác máy tính 9

1.4 Hệ thống phát hiện cử chỉ bàn tay 9
1.4.1 Các bước chính của hệ thống phát hiện bàn tay
12
1.4.2 Các tiêu chí đánh giá hiệu năng của hệ thống phát hiện bàn tay
14
CHƯƠNG 2: CÁC PHƯƠNG PHÁP PHÁT HIỆN BÀN TAY
15
2.1 Giới thiệu chung
15
2.2 Phương pháp phát hiện bàn tay dựa vào đặc trưng Haar- Like 15
2.3 Phân loại sử dụng Adaboost và mô hình Cascade
18
2.3.1 Adaboost
18
2.3.2 Mô hình Cascade
23
2.3.3 Áp dụng mô hình cascade cho bộ phân loại AdaBoost
24
2.4 Tích hợp thông tin ngữ cảnh để tăng độ chính xác khi xác định vị trí bàn tay
25
2.4.1 Tại sao phải tích hợp thông tin ngữ cảnh
25
CHƯƠNG 3: XÂY DỰNG CƠ SỞ DỮ LIỆU VÀ THỬ NGHIỆM 34
3.1 Xây dựng cơ sở dữ liệu
34
3.1.1 Cách thức xây dựng cơ sở dữ liệu
34
3.2 Xây dựng chương trình phát hiện bàn tay 45
3.3 Kết quả thử nghiệm và đánh giá 46
3.3.1 Hoạt động của bộ nhận dạng một cử chỉ

46
3


3.3.2 Một số phát hiện cử chỉ tay 49
3.3.3 Đánh giá hệ thống phát hiện bàn tay 52
CHƯƠNG 4: KẾT LUẬN 55
TÀI LIỆU THAM KHẢO 57

DANH MỤC HÌNH ẢNH
Hình 1.1 - Sơ đồ tổng quan của hệ thống phát hiện bàn tay

12

Hình 2.1a - Các đặc trưng cạnh 16
Hình 2.1b - Các đặc trưng đường

16

Hình 2.1c - Các đặc trưng bao quanh tâm
Hình 2.1d - Đặc trưng đường chéo

16

17

Hình 2.2 - Đặc trưng Haar cho bàn tay

17


Hình 2.3 - Cách tính tổng các điểm ảnh trong một hình chữ nhật bất kì
17
Hình 2.4 - Minh họa thuật toán AdaBoost

19

Hình 2.5 - Bộ phân loại mạnh H(x) xây dựng bằng AdaBoost
Hình 3.1 - Giao diện phần mềm ImageLab 34
Hình 3.2 - Cấu trúc thư mục haarkit

35

Hình 3.3 - Ảnh chụp hình trạng tay

36

Hình 3.4-a Vùng đối tượng có nhiều nền

.37

Hình 3.5-b Vùng đối tượng có nhiều nền

37

Hình 3.6 - Giao diện phần mềm Imagecliper 37
Hình 3.7 - Các chức năng của chương trình Imaglab
Hình 3.8 - Ảnh không chứa đối tượng 39
Hình 3.9 - Nội dung file inforfile.txt 39
Hình 3.10 - Vị trí file sample_creation.bat


40

Hình3.11 - Chạy file sample_creation.bat

41

4

38

20


Hình 3.12 -Vị trí lưu file vector.vec

41

Hình 3.13 - Vị trí file haartraining.bat 42
Hình 3.14 - Chạy chương trình huấn luyện 43
Hình 3.15 - Các thư mục kết quả huấn luyện 43
Hình 3.16 - Thư mục chuyển sang file xml 44
Hình 3.17 - File kết quả xml

44

Hình 3.18 - File huấn luyện

45

Hình 3.18 - Giao diện chương trình


45

Hình 3.19a: Các vùng ảnh được phát hiện khi ở tầng 5 của mô hình cascade
47
Hình 3.19b: Các vùng không liên quan sẽ bị loại ngay từ những tầng đầu
tiên (tầng 10)

47

Hình 3.20: Khắc phục trường hợp nhiều vùng ảnh kế cận nhau 48
bằng cách lấy vùng ảnh trung bình

48

Hình 3.21 - Vùng ảnh lồng nhau

49

Hình 3.22: Phát hiện cử chỉ bàn tay xòe

49

Hình 3.23: Phát hiện cử chỉ bàn tay nắm

50

Hình 3.24: Phát hiện cử chỉ bàn tay giơ 2 ngón

50


Hình 3.25: Phát hiện cử chỉ bàn tay giơ 4 ngón

51

Hình 3.26: Phát hiện cử chỉ bàn tay giơ 1 ngón

51

Hình 3.25: Phát hiện một mình bàn tay

5

52


LỜI NÓI ĐẦU
Sự ra đời của máy tính đã giúp ích rất nhiều cho công việc và cuộc
sống của con người. Với máy tính, con người có thể soạn thảo văn bản,
nghe nhạc, xem phim, thiết kế đồ họa, xử lý ảnh, biên tập phim ... Tuy
nhiên, việc giao tiếp giữa con người và máy tính phụ thuộc chủ yếu vào bàn
phím và chuột, và hầu như con người luôn phải ngồi trước máy tính. Dần
dần, các nhà sản xuất thấy được sự bất tiện và đã tạo ra bàn phím và chuột
không dây với mong muốn mang lại sự tự do hơn cho người dùng. Tuy
nhiên,với bàn phím không dây thì con người vẫn phải tương tác với máy
tính bằng các phím cơ học. Con người chỉ thật sự được thoải mái khi việc
tương tác với máy tính được thực hiện thông qua ngôn ngữ cử chỉ và giọng
nói. Đó chính là vấn đề đặt ra cho bài toán phát hiện cử chỉ của bàn tay.
Trong cuộc sống hàng ngày, phát hiện cử chỉ có thể giúp cho việc giao
tiếp giữa người bình thường với người khiếm thính dễ dàng hơn, vì máy tính

6


sẽ chuyển ngôn ngữ cử chỉ thành chữ viết. Trong công nghiệp và sản xuất,
chỉ cần trang bị cho các robot hệ thống camera, việc điều khiển robot sẽ trở
nênđ ơn giản hơn bao giờ hết. Trong lĩnh vực đồ họa 3 chiều, ta có thể dùng
một số động tác yêu cầu máy tính xoay mô hình theo ý muốn của mình.
Trong công việc văn phòng, phát hiện cử chỉ giúp ta có thể yêu cầu máy tính
thực thi một chương trình, mở một bài hát, gửi một lá thư ... chỉ với một vài
cử chỉ ra hiệu từ xa. Trong lĩnh vực giải trí, các trò chơi thực tế ảo (Virtual
Reallity), người chơi sẽ điều khiển hành động nhân vật bằng chính hành
động của mình.
Với những yêu cầu thực tế và ứng dụng đem lại của lĩnh vực nhận phát
hiện cử chỉ, mục tiêu của đồ án này là là tìm hiểu về lý thuyết nhận dạng, từ
đó xây dựng được mô hình phù hợp cho bài toán phát hiện bàn tay. Bố cục
của đồ án bao gồm các phần chính sau:

7


Mở đầu
Phần mở đầu tập trung phân tích và nêu rõ tính cấp thiết của đề tài,
mục tiêu và đối tượng nghiên cứu của đề tài cũng như giới thiệu lịch sử phát
triển của vấn đề nghiên cứu và trình bày cấu trúc của đề tài.
Chương 1: Tổng quan về tương tác người – máy.
Chương đầu tiên sẽ giới thiệu tổng quan về nhận dạng bao gồm khái
niệm, mô hình và ứng dụng thực tế của nhận dạng.
Chương 2:Các phương pháp phát hiện bàn tay.
Chương này giới thiệu bài toán phát hiện bàn tay, định nghĩa và phân loại.
Hai bài toán quan trọng trong phát hiện bàn tay là trích chọn đặc trưng và thuật

toán phân lớp cũng được tập trung phân tích. Đặc trưng có thể sử dụng để biểu
diễn cử chỉ bàn tay như Haar-like,các thuật toán phân lớp dữ liệu bao gồm
Casade, AdaBoost v.v. Tích hợp thông tin ngữ cảnh vào hệ thống phát hiện bàn
tay.
Chương 3: Xây dựng cơ sở dữ liệu và thử nghiệm.
Cuối chương là phần thử nghiệm và đánh giá so sánh kết quả của hệ
thống với một số phương pháp khác trên các tiêu chí của bài toán phát hiện
bàn tay.
Kết Luận
Tóm lại các kết quả đã nghiên cứu, hướng phát triển của đồ án trong
tương lai.

8


9


CHƯƠNG I: TỔNG QUAN VỀ TƯƠNG TÁC NGƯỜI - MÁY
1.1 Giới thiệu chung về lĩnh vực tương tác người - máy
Tương tác người - máy( Human Computer Interaction – HCI ) nói đơn
giản là việc nghiên cứu con người(người dùng),công nghệ máy tính và tác
động qua lại giữa các đối tượng đó. HCI là một lĩnh vực được quan tâm từ
rất lâu, từ khi máy tính ra đời. Tuy nhiện, do những hạn chế về công nghệ
và cách khai thác máy tính nên khoảng từ những năm 50 đến những năm 80
của thế kỷ 20, HCI chưa được quan tâm đúng mức. Thực chất, những người
sử dụng lúc đó là các kỹ sư máy tính và cách khai thác chương trình cũng
theo kiểu lô (batch): chương trình được gửi khai thác thông tin qua các thao
tác viên của các trung tâm máy tính, các kỹ sư không có đối thoại với
chương trình trong thời gian thực hiện chương trình đó. Sau khi có kết quả

xử lý, họ mang về phân tích đánh giá theo cách riêng của mình.
Thuật ngữ tương tác người - máy tuy mới chỉ phổ biến khoảng gần hai
thập kỉ gần đây, song nó có nguồn gốc trong nhiều lĩnh vực: công thái học,
các yếu tố con người.Các nghiên cứu này có nguồn gốc từ tương tác giữa
máy móc và con người, sau sang tương tác người - máy tính với sự quan tâm
đặc biệt cho máy tính và cộng đồng người dùng.
HCI nó là một lĩnh vực đa ngành. Người thiết kế một hệ thống tương
tác phải có kiến thức đa ngành: tâm lí học, khoa học nhận thức để hiểu được
sự cảm nhận thông tin, quá trình nhận thức,kỹ năng giải quyết vấn đề, công
thái học để hiểu được khả năng vật lý của con người, khoa học máy tính và
công nghệ để có thể xây dựng các công nghệ cần thiết, kỹ năng đồ họa thiết
kế các giao tiếp một cách hiệu quả...

10


1.2 Hệ thống tương tác người máy
Ý tưởng để làm cho máy tính hiểu ý nghĩ 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ột 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 người máy 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 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ị.
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ử trỉ bàn tay. Tương tự như vậy, khi tương tác với các thiết
bị như máy tính, tivi, ô tô... chỉ với vài cử chỉ bàn tay là ta có thể điều khiển
được hoạt động của nó. Ví dụ như ta chỉ cần phẩy tay là có thể chuyển kênh
tivi, hay bật/tắt radio trên ô tô...thay vì phải tự tay nhấn nút trên bộ điều
khiển. Để làm được điều nàybộ điều khiển của các thiết bị cảm nhận như
camera, webcame thiết bị cảm nhận này sẽ thu nhận hình ảnh của bàn tay,

phát hiện cử trỉ để phát hiện điều khiển tương ứng. Ngoài ra phát hiện cử
chỉ còn rất nhiều ứng dụng khác: cử chỉ bàn tay đưuọc sử dụng để giả lập
các thao tác tương tác với đối tượng thế giới ảo, trong tương tác giữa người
và robot, cử chỉ bàn tay chính là ngôn ngữ để con người và robot có thể giao
tiếp với nhau.
Để phát hiện được cử chỉ, bước đầu tiên trong các hệ thống phát hiện
là phải phát hiện ra vị trí của bàn tay.
1.3Thị giác máy tính
1.3.1 Giới thiệu về thị giác máy tính
Thị giác máy tính là một lĩnh vực đang phát triển mạnh mẽ trên thế giới
11


hiện nay.
Khái niệm về thị giác máy tính - Computer Vision có liên quan đến
nhiều ngành học và có nhiều hướng nghiên cứu. Thị giác máy tính là một
lĩnh vực rất mới mẻ với các nhà nghiên cức tại Việt Nam. Việc áp dụng thị
giác máy vào các ứng dụng nghiên cứu khoa học được coi là một khởi đầu
cho chặng đường phát triển thị giác máy tính ở các trường đại học hiện nay.
Máy móc càng ngày càng thông minh, nó không chỉ thay con người
làm các việc nặng nhọc và nhàm chán mà nó còn có một số khả năng bắt
chước động vật và con người. Một trong những khả năng đó là nhận biết
đưuọc thế giới qua mắt của nó. Bằng việc kết hợp với các mô hình khác nữa
như máy học, mạng nơron… giúp chúng dần tiến tới một hệ thống nhân tạo
có những quyết định linh hoạt và chính xác hơn.
1.3.2 Định nghĩa
Thị giác máy tính bao gồm lý thuyết và các kỹ thuật liên quan
nhằm mục đích tạo ra một hệ thống nhân tạo có thể nhận được thông tin
từ các hình ảnh thu được.
Thị giác máy tính là tập hợp của các bước thu nhận, xử lý và mô tả lại

bức ảnh từ một bức ảnh mang tính vật lý thành các thông tin số hóa khác
dưới dạng đặc trưng (feature) để giúp cho các bước như nhận dạng, phân
tích… Một số thành phần trong thị giác máy tính: theo vết (Tracking), phát
hiện (Detection), nhận dạng (Recognition)….
1.3.3 Các ứng dụng của thị giác máy tính
- Điều khiển tiến trình (robot công nghiệp, xe tự hành…)

12


- Phát hiện sự thay đổi (các thiết bị giám sát …)
- Mô hình hóa đối tượng (xử lý ảnh trong y học…)
- Tương tác (đóng vai trò làm đầu vào cho thiết bị trong quá trình
tương tác giữa người và máy…)
1.4 Hệ thống phát hiện bàn tay
Sự tương tác người - Robot (HRI) gần đây đã nhận được sự chú ý đáng
kể trong cộng đồng khoa học, trong phòng thí nhiệm, trong các công ty
công nghệ, và qua các phương tiện truyền thông. Tương tác người - Robot
yêu cầu thông tin liên lạc giữa robot và con người. Sự tương tác giữa một
con người và một robot có thể có nhiều hình thức, nhưng có những hình
thức không chịu ảnh hưởng bởi khoảng cách cho dù con người và robot
đang ở gần với nhau hay không. Như vậy, sự tương tác có thể được chia
thành hai loại chính:
• Tương tác Remote:con người và robot không được đặt cùng chung vị
trí và được ngăn cách về không gian hoặc thậm chí là thời gian(ví dụ, các
Rovers Mars được tách ra từ trái đất cả về không gian và thời gian).
• Tương tác Proximate: con người và robot là đồng vị trí(trong ví dụ,
robot dịch vụ có thể được ở cùng phòng với con người).
Trong các loại tương tác nói chung, tương tác là hữu ích để phân biệt
giữa các ứng dụng đòi hỏi tính di động, thao tác vật lý, hoặc tương tác xã

hội. Tương tác từ xa với các robot di động thường được gọi như
là teleoperation hoặc điều khiển giám sát và tương tác từ xa với một tay máy
vật lý thường được gọi tắt là telemanipulation. Tương tác imate Prox- với
robot di động có thể mang hình thức của một trợ lý robot, và tương tác gần
có thể bao gồm một tương tác vật lý. Sự tương tác xã hội bao gồm các khía
cạnh xã hội, cảm xúc và nhận thức của sự tương tác. Trong tương tác xã hội,
13


con người và robot tương tác như các đồng nghiệp hoặc bạn đồng hành.
Quan trọng hơn, tương tác xã hội với robot đạt được kết quả tốt khi gần
nhau hơn là từ xa.
Trong số các kênh truyền thông, bàn tay đã được chứng minh là một
phương tiện trực quan và hiệu quả để thể hiện một ý tưởng hay để điều
khiển cái gì. Đối với một tương tác bàn tay dựa thành công giữa con người
và robot, một vốn từ vựng của các cử chỉ tay cần phải được xác định.
Gần đây, phát hiện cử chỉ bàn tay trở thành một đề tài nghiên cứu nóng
trong lĩnh vực HCI và Computer Vision do ứng dụng rộng rãi của nó như
ngôn ngữ ký hiệu tay, phát hiện nói dối, trò chơi, học tập điện tử, tương tác
người-máy, v.v...
Trong một ứng dụng tương tác Robot của con người, để có thể tương
tác với con người thông qua cử chỉ tay, robot cần phải hiểu cử chỉ tay. Việc
phát hiện sẽ được thực hiện bằng cách học hỏi những ví dụ của những cử
chỉ quan tâm và rồi nhận ra một cử chỉ mới được đưa ra. Đối với một tương
tác cử chỉ tay thành công giữa con người và robot, một vốn từ vựng của các
cử chỉ tay cần phải được xác định và một cử chỉ dựa trên giao thức truyền
thông phải được hiểu bằng cả con người và robot. Sau đó, một hệ thống
phát hiện cử chỉ bàn tay phải được xây dựng sao cho nó có thể được tích
hợp trong robot cho một sự tương tác tự động.
Cử chỉ bàn tay có thể được sử dụng trong một loạt các ứng dụng. Ứng

dụngthông thường được sử dụng là sự tương tác của con người-máy tính,
đối tượng thao tác trong môi trường ảo,trao đổi thông tin với những người
khác trong một không gian ảo, hướng dẫn một số robot để thực hiện nhiệm
vụ nhất định trong một môi trường thù địch.
Thông thường chỉ xác định hai loại cử chỉ tay: cử chỉ tĩnh và cử chỉ
14


động . Một tư thế tay là một cấu hình cụ thể của bàn tay với một tư thế tĩnh
và vị trí hiện tại của mình mà không có bất kỳ chuyển động tham gia. Một
cử chỉ tay là một chuỗi tư thế của bàn tay kết nối bằng tay hoặc ngón tay
chuyển động liên tục trong một nhịp thời gian ngắn. Chúng tôi tập trung về
việc phát hiện tư thế tay vì tư thế tay có thể trực tiếp thay thế một số thiết bị
điều khiển từ xa, sử dụng sự tương ứng một-một giữa các tư thế tay và các
lệnh. Hơn nữa, việc xác định và phát hiện các tư thế tay chính là lợi ích cho
hoạt động phát hiện cử chỉ tay.
1.4.1 Các bước chính của hệ thống phát nhận diện cử chỉ bàn tay

Hình 1.1 - Sơ đồ tổng quan của hệ thống phát hiện bàn tay
a) Thu nhận tín hiệu, tiền xử lý
Nếu là hệ nhận dạng đối tượng vật lý, ở đầu vào của hệ thống thường
là một loại thiết bị chuyển đổi như máy ghi hình hay ghi âm… Thiết bị này

15


thu nhận tín hiệu về đối tượng để nhận dạng. Các tín hiệu này thông thường
sẽ được số hóa, sau đó sẽ được tiến hành tiền xử lý như: lọc nhiễu, tách
ngưỡng…
b) Trích chọn đặc trưng

Ranh giới khái niệm giữa việc trích chọn đặc trưng và phân lớp ở góc
độ nào đó có phần không thực sự rõ ràng, một bộ trích chọn đặc trưng lý
tưởng phải làm cho công việc còn lại của bộ phân lớp trở nên dễ dàng hơn.
Mục tiêu chung của bộ trích chọn đặc trưng là dựa trên tín hiệu thu được để
mô tả các đối tượng bằng các giá trị xấp xỉ bằng nhau đối với các đối tượng
thuộc cùng loại, và khác xa nhau nếu khác loại. Hơn nữa để tiện xử lý thì số
lượng đặc trưng càng ít càng tốt. Điều này dẫn đến việc phải tìm ra các đặc
trưng khác nhau và chúng không phụ thuộc vào hoàn cảnh thu nhận tín hiệu
về đối tượng. Đầu ra của công đoạn này được gọi là vector đặc trưng của
đối tượng.
c) Phân đoạn
Phân đoạn là một trong những bài toán rất khó trong phát hiện đối
tượng. Chẳng hạn, trong bài toán nhận dạng văn bản thì giai đoạn phân đoạn
chính là việc xác định đâu là vùng dữ liệu text để nhận dạng, tiếp đó ta phải
tách được những vùng có thể là một từ, rồi lại tách tiếp ra từng ký tự... Như
vậy, có thể nói việc phân đoạn trong bài toán phát hiện đối tượng là quá
trình xác định được đâu là vùng dữ liệu cần quan tâm.
d) Nhận dạng
Nhiệm vụ của phần này trong hệ thống là sử dụng các đặc trưng được
cung cấp từ bước trích chọn đặc trưng để gắn các đối tượng vào các lớp
hoặc phân tích hồi quy hay mô tả đối tượng. Các kỹ thuật thường được sử
dụng cho công đoạn nhận dạng gồm: thuật toán k-láng giềng gần nhất,
16


mạng nơron, máy hỗ trợ vector SVM... Nói chung, ở bước này gần như đã
có công thức xử lý cố định và thường không bị phụ thuộc vào bài nhận dạng
mẫu cụ thể nào.
e) Xử lý kết quả
Phần này sẽ hiển thị kết quả ra màn hình. Theo quan niệm, cách đơn

giản nhất để đánh giá độ hoạt động của một bộ phát hiện là xem tỷ lệ nhận
dạng sai với các mẫu. Do đó chúng ta cần phải phát hiện với tỷ lệ lỗi thấp
nhất.

 Các tiêu chí đánh giá hiệu năng của hệ thống phát hiện bàn tay
 Độ chính xác
Độ chính xác là một yêu cầu với bất kỳ hệ thống phát hiện nào. Độ
chính xác thể hiện tính tin cậy của hệ thống phát hiện bàn tay. Người ta
thường đánh giá độ chính xác dựa trên tỉ lệ phát hiện đúng (Hit Rate) và tỉ lệ
phát hiện sai (False Alarm).
Ví dụ Hit Rate = 0.95 có nghĩa là trong số 100 mẫu đối tượng thử
nghiệm, hệ thống chỉ nhận ra được 95 đối tượng (5 mẫu còn lại được bộ
phân loại cho không phải đối tượng).
Tỉ lệ nhận dạng sai là tỷ lệ phát hiện nhầm các đối tượng không phải
đối tượng cần phát hiện. Ví dụ False Alarm = 0.01 có nghĩa là cứ 100 mẫu
không phải là đối tượng thì có 1 mẫu bị hệ thống phát hiện nhầm thành đối
tượng.
 Thời gian phát hiện
Thời gian phát hiện càng nhanh càng tốt, một hệ thống nhận dạng cần
phải đáp ứng yêu cầu thời gian thực. Nhận dạng trong video, người ta xác
định thời gian phát hiện bằng cách tính số khung hình xử lý được trên 1
giây.
17


 Tính thích nghi
Một hệ thống phát hiệncũng cần đáp ứng tính thích nghi, tức là phải có
khả năng đảm bảo độ phát hiện chính xác khi có sự thay đổi của môi trường
và đối tượng cần phát hiện.


CHƯƠNG 2: CÁC PHƯƠNG PHÁP PHÁT HIỆN BÀN TAY
2.1 Giới thiệu chung
Bài toán phát hiện bàn tay có nhiều ứng dụng như: phát triển các công
cụ trợ giúp nói chuyện bằng tay, hệ thống hỗ trợ người khiếm thính, giúp trẻ
em có thể thao tác với máy tính, chuẩn đoán các cảm xúc của bệnh nhân, đo
mức độ trầm cảm, phát hiện nói dối, tương tác trong môi trường ảo, trợ giúp
dạy học từ xa v.v… Thông thường một cử chỉ có thể là cử chỉ tĩnh hoặc
động. Một cử chỉ tĩnh được mô tả bởi một hình trạng duy nhất của cơ thể
hoặc một bộ phận của cơ thể. Một cử chỉ động là một chuỗi các hình trạng
liên tiếp. Bàn tay được sử dụng phổ biến và đóng vai trò quan trọng trong
giao tiếp. Để phát hiện bàn tay, cần phải biểu diễn các hình trạng của bàn
tay, phân tích các hình dạng bàn tay từ đó cho phép phát hiện bàn tay.
Thông thường, trong mỗi ứng dụng cụ thể, một tập các hình dạng tay phải
được định nghĩa trước. Việc phát hiện bàn tay thường được làm sau khi máy
đã học các hình bàn tay từ trước. Hiện nay, việc nghiên cứu các phương
pháp tự động phát hiện bàn tay đang thu hút sự quan tâm của nhiều nhà
18


khoa học trên thế giới.
2.2 Phương pháp phát hiện bàn tay dựa vào đặc trưng Haar- Like
Đặc trưng Haar like là một loại đặc trưng thường được dùng cho bài
toán nhận dạng trên ảnh. Haar - like được xây dựng từ các hình chữ nhật,
dùng để tính độ chênh lệch giữa các giá trị điểm ảnh trong các vùng kề
nhau. Trong hình 2.1a và 2.1b, giá trị của tính năng cho bởi một ảnh bằng
hiệu số giữa tổng các điểm ảnh thuộc hai vùng hình chữ nhật sáng và tối.
Trong hình 2.1c thì giá trị tính năng bằng tổng các điểm ảnh trong hai vùng
hình chữ nhật bên ngoài trừ cho tổng các điểm ảnh trong hình chữ nhật ở
giữa. Trong hình 2.1d, giá trị tính năng bằng tổng các điểm ảnh nằm trong
vùng hai hình chữ nhật màu tối trừ cho tổng các điểm ảnh nằm trong hai

hình chữ nhật màu sáng.

Hình 2.1a - Các đặc trưng cạnh

19


Hình 2.1b - Các đặc trưng đường

Hình 2.1c - Các đặc trưng bao quanh tâm

20


Hình 2.1d - Đặc trưng đường chéo
Giá trị của một đặc trưng Haar-like chỉ đơn giản là sự khác biệt giữa
tổng các giá trị xám của các pixel trong vùng “đen” với tổng các giá trị xám
của các pixel trong vùng “trắng”:
f(x)=Sumblack

rectangle

(pixel gray level) – Sumwhite

rectangle

(pixel gray

level)
Ưu điểm của Haar feature là nó diễn đạt được tri thức về các đối tượng

trong ảnh bởi vì nó biểu diễn mối liên hệ giữa các bộ phận của đối tượng,
điều mà bản thân từng điểm ảnh không diễn đạt được.

Hình 2.2 - Đặc trưng Haar cho bàn tay
Tính toán nhanh các đặc trưng Haar like
Trong quá trình huấn luyện, số lượng xử lý trên các Haar Feature là rất
lớn, việc tính tổng các điểm ảnh cho bởi từng feature làm cho thời gian xử
lý tăng đáng kể. Để khắc phục điều này, Viola và Jones đã đưa ra khái niệm
21


Integral Image để tính toán nhanh cho khác feature cơ bản.

Hình 2.3 - Cách tính tổng các điểm ảnh trong một hình chữ nhật bất kì
Với định nghĩa integral image tại điểm P (x,y) là:

Tổng các giá trị pixel trong vùng “D” được tính như sau:
Trong hình vẽ trên:
 A, B, C, D lần lượt là tổng các giá trị pixel của hình chữ nhật tương
ứng.
 P1, P2, P3, P4 lần lượt là Integral Image tại 4 đỉnh của hình chữ nhật
D.
P1 = A ; P2 = A+B; P3 = A+C;
P4 = A + B+ C+ D
D = P4 – A – B – C = P4 + A – (A+B) – (A+C) = P4 + P1 – P2 – P3.
Khi đó, tổng các điểm ảnh trong môt hình chữ nhật bất kì có thể tính
nhanh dựa trên integral image tại 4 đỉnh của nó Sum(D) = P4 + P1 – P2 –
P3.
2.3 Phân loại sử dụng Adaboost và mô hình Cascade
2.3.1 Adaboost

22


Adaboost (Adaptive Boost) là một tiếp cận boosting được Freund và
Schapire đưa ra vào năm 1995. Adaboost cũng hoạt động trên nguyên tắc
kết hợp tuyến tính các bộ phân loại yếu để có một bộ phân loại mạnh.
Là một cải tiến của tiếp cận boosting, Adaboost sử dụng thêm khái
niệm trọng số (weight) để đánh dấu các mẫu khó nhận dạng. Trong quá
trình huấn luyện, cứ mỗi bộ phân loại yếu được xây dựng, thuật toán sẽ tiến
hành câp nhật lại trọng số để chuẩn bị cho việc xây dựng bộ phân loại yếu
kế tiếp: tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các
mẫu được nhận dạng đúng bởi bộ phân loại yếu vừa xây dựng. Bằng cách
này, các bộ phân loại yếu sau có thể tập trung vào các mẫu mà các bộ phân
loại yếu trước nó chưa làm tốt. Sau cùng, các bộ phân loại yếu sẽ được kết
hợp tùy theo mức độ “tốt” của chúng để tạo dựng nên bộ phân loại mạnh.

Quá trình được minh họa như hình vẽ dưới:

23


Hình 2.4 - Minh họa thuật toán AdaBoost
Có thể hình dung một cách trực quan như sau: để biết một ảnh có phải
là bàn tay hay không, ta hỏi T người (tương đương với T bộ phân loại yếu
xây dựng từ T vòng lặp của boosting), đánh giá của mỗi người (tương
đương với một bộ phân loại yếu) chỉ cần tốt hơn ngẫu nhiên một chút (tỉ lệ
sai dưới 50%). Sau đó, ta sẽ đánh trọng số cho đánh giá của từng người (thể
24



hiện qua hệ số α), người nào có khả năng đánh giá tốt các mẫu khó thì mức
độ quan trọng của người đó trong kết luận cuối cùng sẽ cao hơn những
người chỉ đánh giá tốt được các mẫu dễ. Việc cập nhật lại trọng số của các
mẫu sau mỗi vòng chính là để đánh giá độ khó của các mẫu (mẫu càng có
nhiều người đánh giá sai là mẫu càng khó).

Hình 2.5 - Bộ phân loại mạnh H(x) xây dựng bằng AdaBoost
Các bộ phân loại yếu Hk(x) được biểu diễn như sau:

25


×