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 t
Trang 1Em 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
Trang 2LỜ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
Trang 3LỜ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
Trang 4Hình 2.1c - Các đặc trưng bao quanh tâm 16
Hình 2.1d - Đặc trưng đường chéo 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 20Hì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 38
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
Trang 5Hì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
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 52
Trang 6LỜ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
Trang 7sẽ 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:
Trang 8Mở đầ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
Trang 10CHƯƠ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ả
Trang 111.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
Trang 12hiệ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.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…)
Trang 13- 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,
Trang 14con 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ỉ
Trang 15độ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
Trang 16thu 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,
Trang 17mạ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
Trang 18 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à
Trang 19khoa 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
Trang 20Hình 2.1b - Các đặc trưng đường
Hình 2.1c - Các đặc trưng bao quanh tâm
Trang 21Hì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)=Sum black rectangle (pixel gray level) – Sum white 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
Trang 22Integral 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:
2.3 Phân loại sử dụng Adaboost và mô hình Cascade
2.3.1 Adaboost
Trang 23Adaboost (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:
Trang 24Hì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ể
Trang 25hiệ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:
Trang 26Trong đó:
x = (x1, x2, , xn): vector đặc trưng của mẫu
θ: ngưỡng
fk: hàm lượng giá vector đặc trưng của mẫu
pk: hệ số quyết định chiều của bất phương trình
Công thức trên có thể được diễn giải như sau: nếu giá trị vector đặc trưng của mẫu cho bởi hàm lượng giá của bộ phân loại vượt qua một ngưỡng cho trước thì mẫu là đối tượng, ngược lại thì mẫu không phải đối tượng
Thuật toán AdaBoost:
Cho một tập huấn luyện gồm n mẫu có đánh dấu (x1, y1), (x2,
y2), , (xn, yn) với xk X = (x∈ k1, xk2, , xkm) là vector đặc trưng và yk ∈{-1, 1} là nhãn của mẫu (1 ứng với object, -1 ứng với background)
Khởi tạo trọng số ban đầu cho tất cả các mẫu:
Xây dựng T bộ phân loại yếu
Lặp t = 1, , T
Với mỗi đặc trưng trong vector đặc trưng, xây dựng một
bộ phân loại yếu hj với ngưỡng θj và lỗi
Trang 27 Bộ phân mạnh xây dựng được
Quá trình huấn luyện bộ phân loại được thực hiện bằng một vòng lặp
mà ở mỗi bước lặp, thuật toán sẽ chọn ra bộ phân loại yếu ht thực hiện việc phân loại với lỗi εt nhỏ nhất (do đó sẽ là bộ phân loại tốt nhất) để bổ sung vào bộ phân loại mạnh Mỗi khi chọn được 1 bộ phân loại ht, Adaboost sẽ tính giá trị αt theo công thức ở trên, αt cũng được chọn trên nguyên tắc làm giảm thiểu giá trị lỗiεt
Hệ số αt nói lên mức độ quan trọng của ht:
Trong công thức của bộ phân loại H(x):
Trang 28Ta thấy tất cả các bộ phân loại Ht đều có đóng góp vào kết quả phân loại của H(x), và mức độ đóng góp của chúng phụ thuộc vào giá trị
αt tương ứng: ht với αt càng lớn thì nó càng có vài trò quan trọng trong H(x)
Trong công thức tính αt:
Dễ thấy giá trị αt tỉ lệ nghịch với εj Bởi vì Ht được chọn với tiêu chí đạt εj nhỏ nhất, do đó nó sẽ đảm bảo giá trị αt lớn nhất Công thức này do Freund và Schapire đưa ra
Sau khi tính được giá trị αt, Adaboost tiến hành cập nhật lại trọng số của các mẫu: tăng trọng số các mẫu mà Ht phân loại sai, giảm trọng số các mẫu mà Ht phân loại đúng Bằng cách này, trọng số của mẫu phản ánh được mức độ khó nhận dạng của mẫu đó và ht+1 sẽ ưu tiên học cách phân loại những mẫu này
Vòng lặp xây dựng bộ phân mạnh sẽ dừng lại sau T lần lặp Trong thực
tế cài đặt (thư viện OpenCV của Intel), người ta ít sử dụng giá trị T vì không
có công thức nào đảm bảo tính được giá trị T tối ưu cho quá trình huấn luyện Thay vào đó, người ta sử dụng giá trị min detection rate (tỉ lệ nhận dạng đúng tối thiểu) hay max false alarm (tỉ lệ nhận dạng nhầm tối đa) Khi
đó, qua các lần lặp, false alarm của bộ phân mạnh Ht(x) xây dựng được (tại
Trang 29lần lặp thứ t) sẽ giảm dần, và vòng lặp kết thúc khi tỉ lệ này thấp hơn max false alarm.
Trang 31xét một hay vài đặctrưng đơn giản là có thể nhận diện được mà không cần xét tất cả các đặc trưng.Nhưng đối với các bộ phân loại thông thường thì cho dù mẫu cần nhận dạng là dễhay khó thì thuật toán vẫn sẽ xét tất cả các đặc trưng đã trích rút ra được trong quátrình học Do đó, các thuật toán này tốn thời gian xử lý một cách không cần thiết Cascade of Classifiers được xây dựng chính là nhằm rút ngắn thời gian xử lý,giảm thiểu tỉ lệ nhận dạng sai cho bộ phân loại Cascade tree gồm nhiều tầng (stage),mỗi tầng của cây
sẽ là một bộ phân loại Một mẫu để được phân loại là đối tượng thìnó cần phải đi qua hết tất cả các tầng của cây Các bộ phân loại ở tầng sau đượchuấn luyện bằng những mẫu negative mà bộ phân loại ở tầng trước nhận dạng sai,tức là nó sẽ tập trung học từ các mẫu không phải đối tượng khó hơn, do đó sự kếthợp các bộ phân loại ở các tầng khác nhau sẽ giúp bộ phân loại giảm thiểu được cótỉ lệ nhận dạng sai Với cấu trúc này, những mẫu không phải đối tượng dễ nhận dạngsẽ bị loại ngay từ những tầng đầu tiên, giúp đáp ứng tốt nhất đối với độ phức tạp gia tăng của các mẫu đưa vào, đồng thời giút ngắn thời gian xử lý
2.3.3 Áp dụng mô hình cascade cho bộ phân loại AdaBoost
Cascade of Boosted Classifiers là mô hình Cascade của các bộ phân loại vớimỗi bộ phân loại được xây dựng bằng AdaBoost sử dụng đặc trưng Haar - Like Mô hìnhnày đã được Viola và Jones sử dụng rất thành công trong bài toán nhận dạng mặtngười (Face Detection).Với tập huấn luyện gồm 4196 hình mặt người được đưavề ảnh xám kích thước 24x24 và 9500 ảnh không phải đối tượng không chứa khuônmặt người, Viola và Jones đã xây dựng cấu trúc cascade gồm 38 tầng với tổng cộng 6060 đặc trưng Haar Thực nghiệm đã cho thấy bộ phân loại ở tầng đầu tiên sử dụng2 đặc trưng
Trang 32và loại được khoảng 50% mẫu không phải đối tượng không chứa khuônmặt
và có tỉ lệ nhận dạng là 100% Bộ phân loại ở tầng thứ 2 sử dụng 10 đặc trưngloại được 80% mẫu không phải đối tượng vẫn với tỉ lệ nhận dạng đúng đối tượng100% Hệ thống này được so sánh với hệ thống của Rowley-Baluja-Kanade (sửdụng mạng nơron) và Schneiderman-Kanade (sử dụng phương pháp thống kê), qua so sánh cho thấy tỉ lệ nhận dạng là ngang nhau, trong khi hệ thống của Viola vàJones chạy nhanh hơn đến 15 lần so với hệ thống của Rowley-Baluja-Kanade và nhanh hơn 600 lần hệ thống của Schneiderman-Kanade
Bên cạnh đó, mô hình này cũng được Eng-Jon Ong và Richard Bowden áp dụng thành công trong bài toán nhận dạng bàn tay (Hand Detection) Do bàn
tay có nhiều biến động hơn so với mặt người, Ong và Bowden đã sử dụng phươngpháp học không giám sát (unsupervised learning): tiến hành phân cụm cho tất cả cácmẫu trong tập huấn luyện chứa 2504 hình bàn tay chụp ở nhiều tư thế khác nhaubằng thuật toán K-mediod clustering Cấu trúc bộ nhận dạng của Ong và Bowdengồm 2 lớp: lớp ở trên là 1 cấu trúc Cascade
of Boosted Classifiers để nhận dạng sơbộ bàn tay, lớp bên dưới là từng Cascade of Boosted Classifiers ứng với từng cụmđược chia bằng K-mediod Kết quả thu được rất khả quan, cấu trúc cascade của bộnhận dạng ở lớp trên gồm 11 tầng với tổng cộng 634 bộ phân loại yếu đã đạt tỉ lệnhận dạng là 99.8% trên tập thử nghiệm, còn các bộ cascade ở lớp dưới có tỉ lệ nhậndạng trung bình là 97.4% Bài toán phân loại cử chỉ tương tự như bài toán nhận dạng tay của Ong và Bowden nhưng phức tạp hơn Trong bài toán của họ, một mẫu chỉcần thỏa mãn một trong các bộ nhận dạng
Trang 33ứng với các cụm (cluster) được xây dựngbằng thuật toán K-mediod clustering thì được xem là bàn tay Trong thực tế, có những mẫu vốn thuộc về cluster 1, nhưng bộ nhận dạng cluster 1 cho kết quả nókhông thuộc cluster 1, trong khi bộ nhận dạng cluster 2 lại cho rằng nó thuộc vềcluster 2 Khi đó, rõ ràng cả 2 bộ nhận dạng đều cho kết quả sai nhưng mẫu này vẫnđược xem là một phân loại thành công của bộ nhận dạng bàn tay, vì mẫu được đưavào vẫn được đánh giá là bàn tay Còn đối với bài toán nhận dạng cử chỉ, nếu xemcác bộ phát hiện từng cử chỉ ứng với các
bộ phân loại cluster ở trên thì trường hợptương tự sẽ là một phân loại thất bại (bởi vì cho kết quả phân loại sai)
Bên cạnh đó, thuật toán K-mediod cũng không áp dụng được vì bài toán phânloại cử chỉ là bài toán học giám sát (các lớp đã được qui định trước) Ngoại trừnhững khác biệt trên, nhìn chung thì bài toán phân loại cử chỉ với bài toán phát hiện bàn tay cũng có thể cho kết quả tốt trên bài toán phát hiện bàn tay
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
2.4.1 Tại sao phải tích hợp thông tin ngữ cảnh
Mô hình cascade của các bộ phân loại với mỗi bộ phân loại được xây dựng bằng AdaBoost sử dụng đặc trưng Haar-like mô hình này đã được Viola và Jones sử dụng rất thành công trong bài toán nhận dạng mặt người (Face Detection).Với tập huấn luyện gồm 4196 hình mặt người được đưa về ảnh xám kích thước 24x24 và 9500 ảnh không phải đối tượng không chứa khuôn mặt người, Viola - Jones đã xây dựng cấu trúc cascade gồm 38 tầng
Trang 34với tổng cộng 6060 đặc trưng Haar Thực nghiệm đã cho thấy bộ phân loại ở tầng đầu tiên sử dụng 2 đặc trưng và loại được khoảng 50% mẫu không phải đối tượng không chứa khuôn mặt và có tỉ lệ nhận dạng là 100% Bộ phân loại ở tầng thứ 2 sử dụng 10 đặc trưng loại được 80% mẫu không phải đối tượng vẫn với tỉ lệ nhận dạng đúng đối tượng 100% Hệ thống này được so sánh với hệ thống của Rowley-Baluja-Kanade(sử dụng mạng nơron) và Schneiderman-Kanade (sử dụng phương pháp thống kê), qua so sánh cho thấy tỉ lệ nhận dạng là ngang nhau, trong khi hệ thống của Viola và Jones chạy nhanh hơn đến 15 lần so với hệ thống của Rowley-Baluja-Kanade và nhanh hơn 600 lần hệ thống của Schneiderman-Kanade.
Có thể thấy việc phát hiện khuôn mặt sẽ rất chính xác và tốc độ phát hiện sẽ rất nhanh khi sử dụng mô hình cascade của Viola-Jones
Việc phát hiện bàn tay sử dụng đặc trưng haar-like sẽ khó xác định được hơn so với việc phát hiện khuôn mặt vì:
Bàn tay có cấu trúc phức tạp và biến độ giao động của bàn tay lớn hơn so với khuôn mặt
Khuôn mặt luôn có cấu trúc vị trí của các bộ phận như tai, mắt, mũi, miệng luôn nằm cố định từ những đặc điểm đó có thể xác định khuôn mặt khá dễ dàng thông qua những đặc điểm trên
Vì các ngón của bàn tay có thể chuyển động như cụp vào hoặc
có thể xòe ra nên hình dạng tay là rất đa dạng
Vậy để có thể gia tăng độ chính xác cho việc phát hiện bàn tay ta cần phải tích hợp thêm một số thông tin ngữ cảnh để có thể loại bỏ những vùng
Trang 35không chứa đối tượng để tăng độ chính xác trong quá trình phát hiện bàn tay
và loại bỏ nhanh những vùng xác định sai không nằm trong vùngchứa bàn tay
Dựa vào vị trí khuôn mặt được mô hình Cascade của Viola-Jonesxác định chính xác, từ đó nhờ vị trí khuôn mặt ta có thể xác định nhanh các vùng chứa bàn tay, và loại bỏ những vùng không chứa bàn tay
Trong tương tác người – robot
Người dùng sẽ đứng trước camera
Khoảng cách giữa người và robot không quá xa
Trang 36Những hạn chế mà bài toán đưa ra
Để tăng độ khả thi trong việc nhận dạng ta cần thêm một số ràng buộc
để chương trình có thể nhận dạng chính xác hơn Để giảm thiểu khả năng nhận dạng nhầm thì điều kiện bài toán đưa ra là người dùng sẽ đứng cách camera với khoảng 1m, đứng đối diện với camera, giơ tay phải lên để tương tác và trong điều kiện ánh sáng tốt
Kích thước của bàn tay luônbé hơn kích thước của khuôn mặt(bàn tay
Trang 37luôn có kích thước bé hơn khuông mặt).
Nếu không xác định được vị trí khuôn mặt thì sẽ bỏ qua bước tích hợp thông tin ngữ cảnh để có thế xác định vị trí bàn tay
Nếu phát hiện ra nhiều vị trí khuôn mặt, ta chỉ xét khuôn mặt có kích thước lớn nhất vì người dùng đứng đối diện với camera
Lược đồ thể hiện xác định vùng chứa đối tượng dựa vào thông tin ngữ cảnh
Trang 39Ảnh từ camera sẽ được đưa và chương trình phát hiện các vùng chứa khuôn mặt và các vùng chứa bàn tay Nếu không phát hiện ra khuôn mặt (khuôn mặt không xu sau đó để có thể giảm thiểu số lượng phát hiện không đúng ta cần xác định vùng mà đối tượng mà ở đây là chính là bàn tay sẻ có ở đấy Chúng ta sẽ xác định vùng này bằng cách sử dụng thông tin ngữ cảnh
đó là hình ảnh khuôn mặt (vì hình ảnh phát hiện khuôn mặt với độ chính xác cao và dễ phát hiện hơn bàn tay) Vì xác định bàn tay phải nên vùng chứa bàn tay phải nằm ở bên phải so với vùng chưa khuôn mặt và kích thước của vùng chứa bàn tay ba giờ cũng bé hơn vùng chứa khuôn mặt Để xác định được các diều này ta phải dựa vào tọa độ của các vùng này, được mô tả như sau:
Mô phỏng tọa độ khuôn mặt và bàn tay phải
Trang 40Quy ước các tọa độ như trên hình vẽ
Đọa độ bốn đỉnh của vùng chứa khuôn mặt sẽ là (x1, y1), (x2,y1), (x2,y2), (x1,y2)
Đọa độ bốn đỉnh của vùng chứa bàn tay là (x3,y3), (x4,y3), (x4,y4), (x3,y4)
Để xác định ảnh bàn tay nằm bên phải so với khuôn mặt ta cần so sánh các thông số về tọa độ của ảnh bàn tay so với tọa độ của khuôn mặt
Để bàn tay nằm bên phải khuôn mặt thì x4< x1
Vậy bất cứ vùng chứa bàn tay nào có x4>x1 thì nó ở bên trái so với khuôn mặt nên ta sẽ loại những vùng ảnh này Ta chỉ quan tâm đến những vùng ảnh có x3 lớn hơn x2 (ảnh phía bên phải khuôn mặt) Điều này sẽ khiến tất cả các đối tượng được phát hiện nhầm nằm bên trái khuôn mặt sẽ được