Nhận dạng cử chỉ tay chọn trang phục: Thực hiện việc so khớp giữa các véc tơ đặc trưng được trích chọn ở dữ liệu người dùng với các đặc trưng đã được huấn luyện và đánh giá trong CSDL
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS HUỲNH HỮU HƯNG
Đà Nẵng – Năm 2017
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn trực tiếp của TS Huỳnh Hữu Hưng
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công
bố trong bất kỳ công trình nào khác
Tác giả
Nguyễn Thị Thương
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
MỤC LỤC ii
DANH MỤC CÁC TỪ VIẾT TẮT v
DANH MỤC CÁC BẢNG vii
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ viii
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục đích và nhiệm vụ nghiên cứu 1
2.1 Mục đích nghiên cứu 1
2.2 Nhiệm vụ nghiên cứu 1
3 Đối tượng và phạm vi nghiên cứu 2
3.1 Đối tượng nghiên cứu 2
3.2 Phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
4.1 Phương pháp lý thuyết 2
4.2 Phương pháp thực nghiệm 2
5 Giải pháp đề xuất 2
6 Ý nghĩa khoa học và thực tiễn của đề tài 3
6.1 Ý nghĩa khoa học của đề tài 3
6.2 Ý nghĩa thực tiễn của đề tài 3
7 Kết quả dự kiến 3
8 Cấu trúc luận văn 4
CHƯƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG CỬ CHỈ TAY TRONG GIAO TIẾP NGƯỜI - MÁY 5
1.1 NHẬN DẠNG CỬ CHỈ TAY TRONG GIAO TIẾP NGƯỜI-MÁY 5
1.2 MÔ HÌNH BÀN TAY NGƯỜI 6
1.3 PHÂN LOẠI CỬ CHỈ TAY 7
1.3.1 Cử chỉ tay tĩnh 7
1.3.2 Cử chỉ tay động 8
1.4 TIẾN TRÌNH NHẬN DẠNG CỬ CHỈ TAY 8
1.4.1 Sơ đồ khối của hệ thống nhận dạng cử chỉ tay 8
1.4.2 Dữ liệu vào 9
Trang 51.4.3 Tiền xử lý 9
1.4.4 Trích chọn đặc trưng 13
1.4.5 Nhận dạng 13
1.5 NHỮNG THÁCH THỨC TRONG NHẬN DẠNG CỬ CHỈ TAY 14
1.5.1 Bài toán có quá nhiều chiều 14
1.5.2 Hiện tượng bị che khuất 14
1.5.3 Môi trường không kiểm soát 14
1.5.4 Chuyển động nhanh của bàn tay 14
1.5.5 Nhận diện thời điểm bắt đầu và kết thúc ở một cử chỉ 15
1.5.6 Lựa chọn đặc trưng phù hợp 15
1.5.7 Tốc độ xử lý và tính chính xác trong nhận dạng 15
1.6 MỘT SỐ ỨNG DỤNG DỰA TRÊN NHẬN DẠNG CỬ CHỈ TAY 15
1.6.1 Ứng dụng trong thực tế ảo 15
1.6.2 Ứng dụng trong điều khiển robot 16
1.6.3 Điều khiển máy tính 16
1.6.4 Ứng dụng trong y học 17
1.6.5 Ứng dụng trong lĩnh vực giải trí 17
1.6.6 Ứng dụng trong ngôn ngữ ký hiệu 18
CHƯƠNG 2 - MỘT SỐ KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ NHẬN DẠNG CỬ CHỈ TAY 19
2.1 MỘT SỐ KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG CỬ CHỈ TAY 19
2.1.1 Kỹ thuật phân tích thành phần chính - PCA 19
2.1.2 Kỹ thuật HOG 20
2.1.3 Kỹ thuật trích đặc trưng cục bộ bất biến - SIFT 21
2.1.4 Kỹ thuật Haar-Like 23
2.1.5 Kỹ thuật GIST 24
2.1.6 Kỹ thuật trích xương ảnh của bàn tay (Skeleton of the Hand) 25
2.2 MỘT SỐ KỸ THUẬT NHẬN DẠNG CỬ CHỈ TAY 27
2.2.1 Kỹ thuật K-láng giềng gần nhất 27
2.2.2 Kỹ thuật sử dụng mạng nơ-ron nhân tạo - ANN 28
2.2.3 Kỹ thuật sử dụng máy vectơ hỗ trợ - SVM 31
2.2.4 Sử dụng mô hình Markov ẩn - HMM 33
CHƯƠNG 3 – XÂY DỰNG HỆ THỐNG NHẬN DẠNG CỬ CHỈ TAY ỨNG DỤNG HỖ TRỢ CHỌN TRANG PHỤC 36
3.1 MÔ TẢ BÀI TOÁN 36
Trang 63.2 GIẢI PHÁP ĐỀ XUẤT CỦA HỆ THỐNG 37
3.2.1 Sơ đồ hoạt động của hệ thống 37
3.2.2 Tiến trình nhận dạng cử chỉ tay của hệ thống 37
3.2.3 Phát hiện bàn tay 37
3.2.4 Tiền xử lý 38
3.2.5 Trích chọn đặc trưng 39
3.2.6 Huấn luyện và nhận dạng cử chỉ tay 40
3.3 XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 40
3.3.1 Tổng quan về chương trình 40
3.3.2 Xây dựng CSDL hình ảnh trang phục 41
3.3.3 Thuật toán 41
3.3.4 Chương trình 42
3.3.5 Thực nghiệm 45
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 46
TÀI LIỆU THAM KHẢO 47
Trang 7NHẬN DẠNG CỬ CHỈ TAY TRONG GIAO TIẾP NGƯỜI – MÁY
VÀ ỨNG DỤNG HỖ TRỢ CHỌN TRANG PHỤC
Tóm tắt – Kỹ thuật phát hiện và nhận dạng các cử chỉ tay của con người là cách tự
nhiên để giao tiếp người-máy Trong luận văn này, tôi đã xây dựng thành công chương trình nhận dạng cử chỉ tay ứng dụng hỗ trợ chọn trang phục cho người dùng thông qua thiết bị Kinect Người thực hiện cử chỉ tay sẽ đứng trước camera và hệ thống sẽ nhận dạng cử chỉ
đó là cử chỉ gì Ảnh đầu vào sẽ được tiền xử lý; tiếp theo tiến hành trích chọn đặc trưng từ
dữ liệu khung xương thu thập được từ camera Kinect; sau đó, bộ dữ liệu sẽ được đem đi huấn luyện bằng mô hình máy học vectơ hỗ trợ (SVM) Tập cử chỉ tay dùng trong chương trình chỉ mới giới hạn trong một cử chỉ điều khiển đơn giản Qua thực nghiệm chương trình với điều kiện môi trường và ánh sáng tốt, cử chỉ điểu khiển được thực thi chính xác gần như tuyệt đối Trong các điều kiện ánh sáng không ổn định thì tỉ lệ bắt được cử chỉ vào khoảng 93-97% Khảo sát người dùng thử tỏ thái độ khá hài lòng vì các thao tác điều khiển dễ dàng, giao diện đơn giản, dễ sử dụng
Từ khóa – Nhận dạng cử chỉ tay, trích chọn đặc trưng; giao tiếp người-máy, tập cử chỉ tay,
dữ liệu khung xương
HAND GESTURE RECOGNITION FOR HUMAN–COMPUTER
INTERACTION AND SUPPORTING APPLICATION FOR COSTUME
SELECTION
Abstract - Techniques to detect and recognize the human hand gesture is a natural way to
interact between users and machine In this essay, I have successfully built a program to hand gestures recognition which supports users to choose costumes through camera Kinect One person will do a hand gesture in front of the camera and the system will recognize what the gesture is The input image will be preprocessed; then the feature extraction from the skeleton data with data provided by Kinect; after that, this data will be trained by support vector machine (SVM) model Set of hand gestures used in the program is only limited to a simple controlling gesture Through experimental program with good environmental conditions and light, controlling gesture is performed with almost absolute precision In the condition where light is not stable, the rate of capturing gestures is around 93-97% Surveys show that users are quite satisfied because of its easy performance and simple interface
Hand Gesture Dataset, Skeleton Data
Trang 8DANH MỤC CÁC TỪ VIẾT TẮT
2D Two Dimension
3D Three Dimension
ANN Artificial Neural Network
DoG Difference of Gaussian
HMM Hidden Markov Model
HOG Histogram Orientation Gradient
SDK Software Development Kit
SV Support Vector
SVM Support Vector Machines
VR Virtual reality
Trang 9DANH MỤC CÁC BẢNG
1.1 Giới hạn các tham số góc của ngón tay 7 1.2 Giới hạn các tham số góc và vị trí của cổ tay 7 3.1 Bảng kết quả thực nghiệm chương trình 45
Trang 10DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Số hiệu
1.2 Cấu trúc xương và mô hình động học của bàn tay 6
1.5 Sơ đồ khối của hế thống nhận dạng cử chỉ tay 8
1.8 Ví dụ chuyển ảnh RGB sang ảnh nhị phân
(a) Ảnh gốc – (b) Ảnh nhị phân biểu biễn bởi 0 và 1 10
1.9
Ví dụ về quá trình chuyển đổi ảnh và lọc nhiễu (a) Ảnh gốc RGB – (b) Ảnh không gian YcbCr - (c) Ảnh nhị phân – (d) Ảnh đã được lọc nhiễu
2.1 Giảm số chiều trong không gian đặc trưng 19 2.2 Ảnh sau khi tính gradient chia thành các cell 20 2.3 Ảnh input và gradient theo hai hướng của ảnh 20
2.6 Hướng phân bố trên ảnh và mô tả điểm hấp dẫn 22 2.7 Đặc trưng SIFT của ảnh cử chỉ tay 23
Trang 112.9 Các đặc trưng Haar-Like mở rộng 23
trưng cho phép phân chia dữ liệu bởi siêu phẳng 31
3.3 Tiến trình nhận dạng cử chỉ tay của hệ thống 37 3.4 Sơ đồ vị trí giữa người thực hiện cử chỉ và camera Kinect 38 3.5 Ví dụ về chuẩn hóa kích thước ảnh 39 3.6 Dữ liệu khung xương thu bởi Kinect 2.0 39 3.7 Sơ đồ mô tả chương trình ứng dụng 40
3.9 Giao diện chính của chương trình ứng dụng 42
Trang 12
MỞ ĐẦU
1 Lý do chọn đề tài
Máy tính xuất hiện là một bước phát minh lớn của nhân loại, nó giúp con người làm việc hiện quả hơn, bên cạnh đó để giao tiếp được với máy tính thì phải thông qua các thiết bị như chuột, phím,… thường gây nên bất tiện
Ngày nay, các phương thức giao tiếp người-máy truyền thống đang được từng bước thay thế bởi các phương pháp mới nhằm mục đích nâng cao hiệu suất lao động
Kỹ thuật phát hiện và nhận dạng cử chỉ tay được ứng dụng trong lĩnh vực giao tiếp người-máy là một trong số các phương pháp giao tiếp mới đó Nhận dạng các cử chỉ của tay người là cách tự nhiên khi giao tiếp người–máy Cử chỉ tay cho phép con người tương tác với máy rất dễ dàng và thuận tiện mà không cần phải mang thêm bất kỳ thiết
bị ngoại vi nào
Bên cạnh đó, với nhịp sống hiện đại thì nhu cầu làm đẹp, mua sắm trang phục của con người ngày càng cao Người dùng thường tiêu tốn nhiều thời gian và công sức trong việc chọn, thử và phối hợp các loại trang phục (áo quần, túi xách, khăn quàng cổ,…)
Do đó, rất cần những thiết bị để giúp con người chọn và thử các loại trang phục được trực quan và dễ dàng; đồng thời cũng giúp người dùng dễ dàng biết được cách phối các loại trang phục với nhau đảm bảo sự hài hòa và tính thẩm mĩ cao
Hoạt động giáo dục nghề phổ thông lớp 11 được Bộ Giáo dục và Đào tạo đưa vào triển khai giảng dạy chính thức từ năm học 2007-2008 (thời lượng 105 tiết/năm học) với nhiều loại nghề khác nhau, trong đó có nghề may nhằm giúp học sinh am hiểu hơn về các lĩnh vực nghề nghiệp phổ biến trong xã hội để từ đó định hướng nghề nghiệp tốt hơn Bản thân là một giáo viên THPT, tôi nhận thấy học sinh còn nhiều lúng túng trong việc chọn và phối các mẫu thiết trang phục… như thế nào cho phù hợp dáng người và
để từ đó có thể thu hút được sự quan tâm, yêu thích của học sinh đối với bộ môn nghề
Từ những lí do trên, tôi đề xuất chọn đề tài luận văn cao học là: “Nhận dạng cử
chỉ tay trong giao tiếp người - máy và ứng dụng hỗ trợ chọn trang phục”
2 Mục đích và nhiệm vụ nghiên cứu
2.1 Mục đích nghiên cứu
Mục đích chính của đề tài là xây dựng giải pháp nhận dạng cử chỉ tay của con người từ dữ liệu thu được trên thiết bị Kinect để xây dựng chương trình ứng dụng cho phép người dùng thực hiện việc chọn trang phục bằng cử chỉ tay
2.2 Nhiệm vụ nghiên cứu
Luận văn tập trung nghiên cứu những vấn đề sau:
- Phân tích cử chỉ tay, trích chọn đặc trưng và nhận dạng cử chỉ tay
- Đưa ra giải pháp thích hợp đáp ứng mục đích đặt ra của đề tài
- Viết chương trình ứng dụng để kiểm tra tính hiệu quả của giải pháp
Trang 133 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
Luận văn tập trung tìm hiểu những vấn đề sau:
- Các cử chỉ tay
- Các kỹ thuật trích chọn đặc trưng cử chỉ tay
- Các kỹ thuật nhận dạng cử chỉ tay
3.2 Phạm vi nghiên cứu
Luận văn tập trung trong phạm vi:
- Nghiên cứu kỹ thuật xử lý ảnh và nhận dạng đối tượng cử chỉ tay
- Nghiên cứu các kỹ thuật trích chọn đặc trưng cử chỉ tay tĩnh và động
- Nghiên cứu nhận dạng cử chỉ tay dựa trên video thu được từ camera Kinect
4 Phương pháp nghiên cứu
4.1 Phương pháp lý thuyết
Luận văn tập trung nghiên cứu một số lý thuyết như sau:
- Các tài liệu về cử chỉ tay, nhận dạng cử chỉ tay trong lĩnh vực xử lý ảnh và thị giác máy tính
- Cơ sở lý thuyết về các thuật toán trích chọn đặc trưng và nhận dạng cử chỉ tay
từ video thu được trên Kinect
4.2 Phương pháp thực nghiệm
Luận văn nghiên cứu một số vấn đề về thực nghiệm như sau:
- Cài đặt chương trình ứng dụng dựa trên giải pháp đề xuất
- Triển khai thực nghiệm với thiết bị Kinect
- Kiểm thử hiệu quả của chương trình với các cử chỉ tay khác nhau
5 Giải pháp đề xuất
Luận văn đề xuất mô hình nhận dạng cử chỉ tay để chọn trang phục như sau:
Trang 14 Tiền xử lý: Từ dữ liệu cử chỉ tay thu nhận được ta thực hiện xử lý ảnh cơ bản
bao gồm: căn chỉnh ảnh, chuẩn hóa ánh sáng, loại bỏ nhiễu, tách ngưỡng, lọc tần số, lọc màu da,
Trích chọn đặc trưng: Có thể dựa vào đặc điểm không gian (phân bố mức xám,
phân bố xác suất, biên độ, điểm uốn,…), đặc điểm biến đổi, đặc điểm biên và đường biên,…của ảnh để trích chọn đặc trưng phù hợp với mục đích nhận dạng Mục tiêu của trích chọn đặc trưng là dựa trên các 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 cùng loại, và khác xa nhau nếu khác loại
Số lượng đặc trưng càng ít càng tốt Đầu ra của công đoạn này được gọi là véc tơ đặc trưng của đối tượng
Huấn luyện hệ thống: Dựa trên các thông số sau khi trích chọn đặc trưng từ các
dữ liệu, có thể sử dụng các phương pháp học máy như: Mạng nơ-ron nhân tạo (Artificial Neural Network- ANN), Mô hình Markov ẩn (Hidden Markov Model - HMM), máy vector hỗ trợ (Support Vector Machines - SVM), mô hình cực đại hóa Entropy (Maximum Entropy Model - MEM),… để huấn luyện tập dữ liệu, đồng thời sử sụng các phương pháp đánh giá chất lượng của tập dữ liệu Kết quả thu được là cơ sở dữ liệu đã được phân lớp
CSDL đã phân lớp: Tập dữ liệu đạt chất lượng cao đã được huấn luyện và đánh
giá ở bước huấn luyện hệ thống
Nhận dạng cử chỉ tay chọn trang phục: Thực hiện việc so khớp giữa các véc tơ
đặc trưng được trích chọn ở dữ liệu người dùng với các đặc trưng đã được huấn luyện
và đánh giá (trong CSDL đã phân lớp) ở tập dữ liệu mẫu để thực hiện các thao tác tương ứng như chọn loại trang phục, chọn mẫu trang phục,… kiểm tra dữ liệu người dùng có chứa cử chỉ đang xét hay không?
6 Ý nghĩa khoa học và thực tiễn của đề tài
6.1 Ý nghĩa khoa học của đề tài
Về mặt khoa học, đề tài sẽ mang ý nghĩa cung cấp về mặt lý thuyết để làm rõ về quá trình và các phương pháp nhận dạng cử chỉ tay Kết quả thu được là hệ thống nhận dạng cử chỉ tay người, hỗ trợ việc chọn và thử trang phục cho con người trực quan, dễ dàng
6.2 Ý nghĩa thực tiễn của đề tài
Về mặt thực tiễn, đề tài góp phần hỗ trợ cho việc điều khiển máy tính làm việc bằng cử chỉ tay một cách hiệu quả, nâng cao hiệu quả giao tiếp giữa người và máy, đáp ứng nhu cầu thực tế của con người trong lĩnh vực thời trang
7 Kết quả dự kiến
Luận văn dự kiến sẽ đạt được những kết quả sau:
- Trích chọn được các đặc trưng của cử chỉ tay
Trang 15- Đưa ra được giải pháp cho vấn đề nhận dạng cử tay từ video hiệu quả
- Xây dựng chương trình thực nghiệm nhận dạng cử chỉ tay để chọn trang phục cho người dùng
8 Cấu trúc luận văn
Nội dung của luận văn được trình bày với các phần chính như sau:
Mở đầu
Chương 1 - Nghiên cứu tổng quan về nhận dạng cử chỉ tay trong giao tiếp
người-máy: Chương này trình bày một số vấn đề liên quan nhận dạng cử chỉ tay như
phân loại cử chỉ tay, mô hình bàn tay, các đặc trưng cơ bản và tiến trình nhận dạng cử chỉ tay, và một số ứng dụng thực tế của nhận dạng cử chỉ tay
Chương 2 - Một số kỹ thuật trích chọn đặc trưng và nhận dạng hình ảnh cử
chỉ bàn tay: Trong chương này trình bày một số kỹ thuật trích chọn đặc trưng thường
được sử dụng để phục vụ cho bài toán nhận dạng cử chỉ tay tĩnh và cử chỉ tay động Đồng thời giới thiệu một số kỹ thuật nhận dạng cử chỉ tay phổ biến như: K-NN, SVM, ANN và HMM
Chương 3 - Xây dựng hệ thống nhận dạng cử chỉ tay hỗ trợ chọn trang phục:
Chương này trình bày về việc xây dựng hệ thống nhận dạng cử chỉ tay ứng dụng hỗ trợ
cho người dùng chọn trang phục dựa trên thiết bị camera Kinect
Kết luận và hướng phát triển
Trang 16CHƯƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG
CỬ CHỈ TAY TRONG GIAO TIẾP NGƯỜI - MÁY
1.1 NHẬN DẠNG CỬ CHỈ TAY TRONG GIAO TIẾP NGƯỜI-MÁY
Trước đây, bàn phím và chuột là các thiết bị chính để thực hiện việc giao tiếp
người–máy Tuy nhiên, con người giao tiếp chủ yếu bởi “nghe” và “nhìn”, do đó một
giao diện người–máy sẽ trực quan hơn nếu con người có thể điều khiển máy tính bằng giọng nói hay cử chỉ giống như khi giao tiếp giữa người với người trong thế giới thực
mà không cần thông qua các thiết bị điều khiển khác như chuột hay bàn phím Một ưu điểm khác là người dùng có thể giao tiếp từ xa mà không cần phải tiếp xúc vật lý với máy tính
Trong cuộc sống hàng ngày, con người thực hiện rất nhiều các cử chỉ khác nhau
Đó là điều tự nhiên để cải thiện và nâng cao thông tin liên lạc giữa người với người Hãy thử tưởng tượng khi chúng ta giao tiếp với nhau mà không có cử chỉ, sẽ rất khó để hiểu cũng như đoán nhận được các phản ứng thông điệp giữa người nói và người nghe Trong tất cả các loại cử chỉ mà con người sử dụng, cử chỉ tay đóng một vai trò quan trọng Sử dụng cử chỉ tay có thể giúp chúng ta thể hiện được nhiều thông tin hơn trong thời gian ngắn hơn Ngày nay, máy tính đã trở thành một phần quan trọng trong cuộc sống của chúng ta, vậy tại sao không sử dụng cử chỉ tay để giao tiếp với chúng Việc sử dụng trực tiếp của bàn tay người như một thiết bị đầu vào là một phương pháp hấp dẫn để con người có thể giao tiếp tự nhiên với máy tính [5] Trong giao tiếp người–máy, các hình trạ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ị
Để nhận dạng cử chỉ tay, bước đầu tiên trong hệ thống nhận dạng là phát hiện ra
cử chỉ tay bằng một thiết bị cảm nhận (camera/webcam), để thu thập các quan sát cần cho việc phân loại hay miêu tả Trong luận văn này, thiết bị cảm nhận được sử dụng để thu nhận cử chỉ tay là Kinect Kinect là camera tích hợp cảm biến chiều sâu được phát triển bởi hãng Microsoft
Hình 1.1 - Camera Kinect của hãng Microsoft
Trang 17Sau đó, tiến hành xử lý hình ảnh, trích chọn đặc trưng để tính toán các thông tin dưới dạng số hay dạng biểu tượng từ các dữ liệu quan sát và thực hiện công việc phân loại dựa vào các đặc tính đã được trích chọn để nhận dạng cử chỉ Các cử chỉ của bàn tay được phát hiện dựa trên tập dữ liệu về cử chỉ tay mẫu được thu thập từ trước thông qua hình ảnh từ webcam/video Nhiệm vụ quan trọng của bài toán nhận dạng cử chỉ tay
là phải cho máy tính “học” và “huấn luyện” trên những cử chỉ tay mẫu để nó có thể nhận dạng cử chỉ tay một cách chính xác
1.2 MÔ HÌNH BÀN TAY NGƯỜI
Mô hình xương bàn tay người có cấu trúc như sau [5]: bàn tay con người gồm 27 xương, trong đó có 8 xương ở cổ tay và 19 xương cho lòng bàn tay và ngón tay Các xương này được kết nối với nhau bởi các khớp nối có một hay nhiều bậc tự do Hình 1.2 biểu diễn mô hình xương bàn tay và biểu diễn các khớp nối cùng số bậc tự do tương ứng tạo thành tổng cộng 26 bậc tự do Trong đó cổ tay có 6 bậc tự do với 3 bậc tự do cho chuyển động tịnh tiến trong không gian và 3 bậc tự do cho chuyển động xoay quanh các trục Năm ngón tay, mỗi ngón có 4 bậc tự do với 2 bậc cho khớp gốc ngón tay (gập/ngửa
và khép/mở) và 1 bậc cho mỗi khớp còn lại
Hình 1.2 - Cấu trúc xương và mô hình động học của bàn tay
Do đặc điểm giải phẫu học, chuyển động của các khớp ngón tay bị ràng buộc bởi các cơ giằng dẫn tới các góc quay của cổ tay và các đốt ngón tay bị giới hạn Bảng 1.1 trình bày giới hạn của các tham số góc của ngón tay Bảng 1.2 trình bày giới hạn các tham số của cổ tay
Trang 18Bảng 1.1 - Giới hạn các tham số góc của ngón tay
Trong đó 𝜃𝑀𝑃𝑥 và 𝜃𝑀𝑃𝑧 là hai góc quay của khớp gốc, θ PIP là góc quay của khớp
giữa và θ DIP là góc quay của khớp đỉnh
Bảng 1.2 – Giới hạn các tham số góc và vị trí của cổ tay
Trong đó ( x c , y c , z c ) là tọa độ của cổ tay trong không gian và (θ c , θ c , θ c z ) là hướng của bàn tay quay quanh các trục tương ứng
Lưu ý rằng giới hạn của vị trí ( x c , y c , z c ) được xác định bởi thị trường của camera
1.3 PHÂN LOẠI CỬ CHỈ TAY
Trong thực tế cuộc sống hàng ngày, con người thực hiện rất nhiều các cử chỉ tay khác nhau Luận văn này chỉ xem xét các cử chỉ tay được diễn đạt bởi một bàn tay Mỗi
cử chỉ tay là một cấu hình bàn tay đặc biệt đại diện bởi một hình ảnh duy nhất
Có nhiều cách để phân loại cử chỉ tay, thông thường cử chỉ tay được phân loại dựa trên mối quan hệ thời gian Khi đó, cử chỉ tay được phân thành hai loại: cử chỉ tay tĩnh
và cử chỉ tay động [42]
1.3.1 Cử chỉ tay tĩnh
Cử chỉ tay tĩnh là cử chỉ tay mà trong đó vị trí của bàn tay không thay đổi theo thời gian (độc lập với thời gian) Cử chỉ tay tĩnh chủ yếu dựa vào hình dạng và góc uốn của ngón tay
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ể Cử chỉ tay tĩnh là cử chỉ tay diễn đạt một trạng thái duy nhất của bàn tay Điều này có nghĩa là sự di chuyển và theo dõi các vị trí khác nhau của bàn tay là không cần thiết
Hình 1.3 là ví dụ về việc người dùng sử dụng cử chỉ tay tĩnh (với trạng thái bàn tay phải nắm) để thực hiện chọn trang phục ảo
Trang 19Hình 1.3 - Ví dụ về cử chỉ tay tĩnh
1.3.2 Cử chỉ tay động
Cử chỉ tay động là cử chỉ tay mà trong đó vị trí tay thay đổi liên tục theo thời gian (phụ thuộc vào thời gian) Một cử chỉ động là một chuỗi các hình trạng liên tiếp theo một quỹ đạo nhất định Hầu hết những cử chỉ mà chúng ta quan sát thấy trong cuộc sống thường ngày là cử chỉ động
Trong thực tế, nhiều cử chỉ tay được tạo ra bởi cách chúng ta di chuyển bàn tay như hướng đi, quỹ đạo hay tốc độ thực hiện Những cử chỉ này được gọi là cử chỉ tay động Như vậy có thể thấy cử chỉ tay động chủ yếu dựa vào quỹ đạo, hướng đi của bàn tay, thêm vào đó là hình dáng và góc uốn của ngón tay Để xử lý cử chỉ tay động, cần phải theo dõi bàn tay và lưu các vị trí khác nhau của bàn tay vào trong bộ nhớ
Hình 1.4 là ví dụ về việc người dùng sử dụng cử chỉ tay động để thực hiện lướt qua các trang phục
Hình 1.4 - Ví dụ về cử chỉ tay động
1.4 TIẾN TRÌNH NHẬN DẠNG CỬ CHỈ TAY
1.4.1 Sơ đồ khối của hệ thống nhận dạng cử chỉ tay
Tiến trình nhận dạng cử chỉ tay cơ bản có dạng như sau [41]:
Hình 1.5 – Sơ đồ khối của hệ thống nhận dạng cử chỉ tay
Trang 201.4.2 Dữ liệu vào
Dữ liệu vào có thể là một hình ảnh, hoặc một chuỗi các hình ảnh (video), được chụp bởi một máy ảnh duy nhất hướng về phía bàn tay người thực hiện các cử chỉ Tuy nhiên, cũng tồn tại các hệ thống sử dụng hai hoặc nhiều máy ảnh để thu được nhiều thông tin về các tư thế tay Ưu điểm của hệ thống này là có thể chụp được nhiều góc độ của tư thế tay
Hình 1.6 - Một tư thế tay ở nhiều hướng nhìn
Một hệ thống khác đã được trình bày trong [8], trong đó camera được gắn trên một chiếc mũ để chụp khu vực ở phía trước của người đeo (xem Hình 1.7) Lợi thế của hệ thống này là vị trí máy ảnh luôn luôn thích nghi nếu người di chuyển hoặc quay xung quanh
Hình 1.7 - Camera gắn trên mũ
1.4.3 Tiền xử lý
Tiền xử lý là nhiệm vụ quan trọng trong hệ thống nhận dạng cử chỉ tay Mục đích
cơ bản của giai đoạn này là tối ưu hình ảnh thu được từ giai đoạn trước để chuẩn bị trích xuất các đặc trưng trong giai đoạn tiếp theo Chất lượng hình ảnh thu được phụ thuộc vào điều kiện sáng và và chất lượng của thiết bị ghi hình Một hình ảnh chất lượng thấp
sẽ ảnh hưởng tới độ chính xác của hệ thống Vì vậy, tiền xử lý ảnh là bắt buộc để nâng
Trang 21cao chất lượng ảnh đồng thời cải thiện độ chính xác của hệ thống được đề xuất Từ hình ảnh thu nhận được ở dữ liệu vào ta có thể thực hiện xử lý ảnh cơ bản như: căn chỉnh ảnh, chuẩn hóa ánh sáng, loại bỏ nhiễu, phân đoạn ảnh, lọc màu da, Dưới đây là một
số kỹ thuật tiền xử lý thường được áp dụng trong giai đoạn này:
a Chuyển ảnh RGB sang ảnh nhị phân
Ảnh màu RGB nên được chuyển sang dạng ảnh xám hoặc chuyển sang ảnh trong không gian màu YCbCr trước khi nó được chuyển sang ảnh nhị phân
Ảnh nhị phân là ảnh mà giá trị của các điểm ảnh chỉ được biểu diễn bởi một trong hai giá trị 0 (màu đen) hoặc 1 (màu trắng) Để chuyển sang ảnh nhị phân thì nhất thiết phải chỉ rõ ngưỡng để phân vùng ảnh thành đen hoặc thành trắng tương ứng với 0 hoặc
1 Có nhiều kỹ thuật để tìm giá trị ngưỡng, phương pháp thông dụng nhất do Otsu đề xuất [9]
Như vậy, sau khi chuyển ảnh gốc RGB sang ảnh nhị phân chúng ta thu được ảnh đen trắng mà trong đó những điểm ảnh trong vùng tay có màu trắng (1) và điểm ảnh nền
có màu đen (0), minh họa ở hình 1.8 [43]
(a) (b) Hình 1.8 – Ví dụ chuyển ảnh RGB sang ảnh nhị phân (a) Ảnh gốc – (b) Ảnh nhị phân biểu biễn bởi 0 và 1
b Lọc nhiễu
Trong ảnh nhị phân, có thể có một số giá trị 0 trong vùng tay và có một số giá trị
1 trong khu vực nền Khi đó, nền có những số 1 được biết đến như nhiễu xung quanh và
cử chỉ tay có một vài số 0 được biết đến như nhiễu cử chỉ Những nhiễu này có thể dẫn đến một vấn đề trong việc phát hiện đường viền của cử chỉ tay vì vậy cần phải loại bỏ các nhiễu này Hình 1.9 minh họa về quá trình chuyển đổi ảnh và lọc nhiễu của hình ảnh
cử chỉ tay [41]
Trang 22(a) (b) (c) (d)
Hình 1.9 – Ví dụ về quá trình chuyển đổi ảnh và lọc nhiễu (a) Ảnh gốc RGB – (b) Ảnh không gian YCbCr - (c) Ảnh nhị phân – (d) Ảnh đã được lọc nhiễu
c Phân đoạn ảnh
Phân đoạn ảnh là thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồng nhất với nhau hay nói cách khác là xác định các biên của các vùng ảnh đó Các vùng ảnh đồng nhất này thông thường sẽ tương ứng với toàn bộ hay từng phần của các đối tượng thật sự bên trong ảnh Như vậy, mục tiêu của phân đoạn ảnh là làm nổi bật hoặc tách hẳn đối tượng cần quan tâm ra từ ảnh ban đầu, làm đơn giản hóa và thay đổi cách biểu diễn để dễ dàng phân tích hơn Một số kỹ thuật phận đoạn ảnh phổ biến như:
Phân đoạn ảnh dựa trên ngưỡng
Các kỹ thuật phân đoạn ảnh dựa trên ngưỡng hầu hết đều dựa vào lược đồ mức xám của ảnh để tính toán ngưỡng Việc tính toán ngưỡng bao hàm việc xác định một tập các giá trị ngưỡng (có thể là một hoặc nhiều giá trị ngưỡng), dựa vào giá trị ngưỡng để phân tách ảnh ra thành những vùng có ý nghĩa
(a) (b) Hình 1.10 - Phân đoạn ảnh dựa trên ngưỡng của lược đồ mức xám
(a) sử dụng một ngưỡng T - (b) Sử dụng hai ngưỡng T1 và T2
Phân đoạn ảnh dựa trên biên (cạnh)
Trang 23Việc xác định biên ảnh là một vấn đề chủ yếu và đặc điểm quan trọng trong phân tích ảnh vì các kĩ thuật phân đoạn ảnh chủ yếu dựa vào biên Một điểm ảnh được gọi là biên nếu ở đó có sự thay đổi đột ngột về mức xám Tập hợp các điểm biên tạo thành biên, hay còn gọi là đường bao của ảnh Mỗi một biên là một thuộc tính gắn liền với một điểm riêng biệt và được tính toán từ những điểm lân cận của nó Một số phương pháp phát hiện biên thông dụng như: Phương pháp đạo hàm bậc nhất (phương pháp Gradient), phương pháp đạo hàm bậc hai (phương pháp Laplace), phương pháp Canny do John Canny đề xuất vào năm 1986,… [41]
(a) (b) (c)
Hình 1.11 – (a) Ảnh không gian YcbCr - (b) Ảnh nhị phân – (c) Phân vùng ảnh dựa vào biên
Phân đoạn ảnh dựa vào màu da
Da con người có màu rất đặc trưng, có thể dễ dàng nhận dạng và nó cũng không
bị ảnh hưởng bởi các phép biến đổi hình học của đối tượng Vì vậy, phát hiện bàn tay người dựa trên việc phát hiện da là một phương pháp khá đơn giản và có thể thực hiện được
Phương pháp này chỉ dựa vào thông tin về màu sắc nên các vùng ảnh không phải
là bàn tay như khuôn mặt, các vùng da khác trên cơ thể con người, thậm chí là các đối tượng khác có màu giống với màu da cũng bị nhận diện như là bàn tay Do đó, việc phát hiện bàn tay dựa trên màu da chỉ có hiệu quả khi trong ảnh ngoài vùng bàn tay thì không chứa thêm các đối tượng khác có màu da và vùng bàn tay phải có sự tách biệt với nền
Hình 1.12 - Kết quả lọc màu da
Trang 241.4.4 Trích chọn đặc trưng
Một hình ảnh kỹ thuật số có thể chứa một lượng lớn dữ liệu, đặc biệt là đối với ảnh có chất lượng tốt, hình ảnh chuyên nghiệp Vì vậy, để thao tác trên một hình ảnh hiệu quả, cần giảm bớt lượng dữ liệu phải xử lý Cách tốt nhất để giải quyết vấn đề này
là trích xuất các đặc điểm quan trọng nhất của một hình ảnh mà có thể đại diện cho toàn
bộ hình ảnh Những đặc điểm này được gọi là các đặc trưng hình ảnh Như vậy, trích chọn đặc trưng là chiết xuất thông tin từ dữ liệu thô mà nó phù hợp nhất cho mục đích nhận dạng để giảm thiểu các biến thể trong một lớp và tối đa hóa các biến thể giữa các lớp khác nhau
Trong giai đoạn trích chọn đặc trưng, mỗi đối tượng được đại diện bởi một véc tơ đặc trưng Mục tiêu chủ yếu của trích chọn đặc trưng là trích xuất một tập hợp các đặc trưng, trong đó có thể tối đa hóa tỷ lệ nhận dạng với sự nhầm lẫn nhỏ nhất Các đặc điểm của đối tượng được trích chọn tuỳ theo mục đích nhận dạng trong quá trình xử lý ảnh Có thể nêu ra một số đặc điểm của ảnh sau đây:
Đặc điểm không gian: Phân bố mức xám, biên độ, điểm uốn… Các đặc điểm loại
này thường được trích chọn bằng việc áp dụng phép biến đổi Haar-Like,… trên ảnh
Đặc điểm biến đổi: Đặc điểm biến đổi như hình dáng bàn tay Các đặc điểm loại
này được trích chọn bằng việc áp dụng bộ lọc Gabor lên ảnh
Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng rất hữu
ích trong việc trích chọn các thuộc tính bất biến được dùng khi nhận dạng đối tượng Các đặc điểm này có thể được trích chọn nhờ toán tử Gradient, toán tử la bàn, toán tử Laplace,…
Việc trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các đối tượng ảnh chính xác, với tốc độ tính toán cao và dung lượng nhớ lưu trữ giảm xuống [2]
1.4.5 Nhận dạng
Giai đoạn nhận dạng thực hiện việc phân tích từ dữ liệu đầu vào của người dùng
để kiểm tra trong dữ liệu đầu vào đó có chứa cử chỉ đang xét hay không Dữ liệu đầu vào cũng qua các quá trình tiền xử lý, trích chọn đặc trưng và sau đó đưa vào bộ nhận dạng Bộ nhận dạng sẽ phân loại các đặc trưng vào các lớp đã được định nghĩa trong giai đoạn huấn luyện trước đó Việc nhận dạng ở khâu này được áp dụng thêm một số
kỹ thuật nhằm tăng độ chính xác cho hệ thống Sau đó cử chỉ được phân loại nhờ vào việc kết hợp các bộ nhận dạng cử chỉ Mỗi bộ nhận dạng cử chỉ có chức năng nhận dạng một cử chỉ ứng với các đặc trưng đã được huấn luyện
Có nhiều kỹ thuật nhận dạng khác nhau như: đối sánh mẫu, máy hỗ trợ véc tơ (SVM), mạng nơ-ron nhân tạo (ANN), mô hình Makov ẩn (HMM),… Mỗi phương pháp nhận dạng có ưu điểm, hạn chế riêng của nó Tùy thuộc vào từng bài toán nhận dạng cụ thể mà ta lựa chọn phương pháp tối ưu nhất
Trang 251.5 NHỮNG THÁCH THỨC TRONG NHẬN DẠNG CỬ CHỈ TAY
Nhận dạng cử chỉ tay sử dụng các kĩ thuật của xử lý ảnh để giao tiếp người – máy
là một giải pháp được dùng để thay thế phương pháp giao tiếp truyền thống (bàn phím, chuột,…) Tuy nhiên, việc nhận dạng cử chỉ của bàn tay bằng kĩ thuật xử lý ảnh gặp phải những vấn đề khó khăn cơ bản như sau:
1.5.1 Bài toán có quá nhiều chiều
Bàn tay là một đối tượng có nhiều khớp nối với hơn 20 bậc tự do (xem Hình 1.2)
Điều đó dẫn đến mỗi bàn tay có rất nhiều hình trạng do sự cử động linh hoạt của các khớp xương cổ tay và các ngón tay Mặt khác, với mỗi hình trạng của bàn tay thì hình dạng bàn tay trong video cũng rất khác nhau từ các hướng nhìn khác nhau (xem Hình 1.6) Mặc dù có những ràng buộc giữa các ngón tay và các khớp trên cùng một ngón tay khiến cho chuyển động thực tế ít hơn 20 bậc tự do, tuy nhiên các nghiên cứu cho thấy việc mô tả tư thế bàn tay với ít hơn 6 bậc tự do là không thể Kết hợp với vị trí và hướng của bàn tay, việc nhận dạng tư thế bàn tay đòi hỏi phải ước lượng rất nhiều tham số Ngoài ra, không chỉ có một số lượng lớn biến thể của một bàn tay, bàn tay của những người khác nhau cũng rất khác nhau về hình dạng, kích thước, màu sắc da,
1.5.2 Hiện tượng bị che khuất
Các phần của một bàn tay có thể bị che khuất bởi các phần khác như một bàn tay khác, cánh tay, hoặc các đối tượng khác Điều này ảnh hưởng đến việc thu nhận thông tin bàn tay không đầy đủ
Bàn tay là một đối tượng nhiều khớp nối, nên khi quan sát bàn tay từ cảm biến ảnh,
kết quả của phép chiếu từ không gian 3D xuống mặt phẳng 2D khiến một lượng lớn thông tin về hình khối bị che khuất Điều này gây khó khăn cho việc phân hoạch và trích chọn các đặc trưng cơ bản từ bàn tay
1.5.3 Môi trường không kiểm soát
Khi nhận dạng trên phông nền phức tạp, việc tách vùng bàn tay trong ảnh trở nên khó khăn khi màu của vùng bàn tay giống với màu của các vùng khác trong ảnh Trong trường hợp bàn tay chỉ chiếm một phần nhỏ trong ảnh, mức độ chi tiết của bàn tay thấp nên rất khó phân biệt các hình dạng và dễ bị nhiễu
Nhìn chung, để mở rộng ứng dụng, nhiều hệ thống giao tiếp người - máy được kì
vọng có thể hoạt động trong một môi trường có nền không bị giới hạn và điều kiện ánh sáng thay đổi lớn Nói cách khác, làm việc trên một nền tùy ý luôn là thách thức với hầu hết các hệ thống xử lý ảnh
1.5.4 Chuyển động nhanh của bàn tay
Bàn tay có khả năng chuyển động rất nhanh, ở cổ tay tốc độ lên tới 5m/giây cho
dịch chuyển tịnh tiến và 300 độ/giây cho chuyển động xoay Hiện nay, cảm bến ảnh thông dụng có thể hỗ trợ tốc độ khung hình 30-60Hz Mặt khác, rất nhiều giải thuật khó
có thể đạt đến tốc độ 30Hz Tốc độ di chuyển nhanh của bàn tay kết hợp với tần số lấy
Trang 26mẫu thấp từ cảm biến gây thêm những khó khăn cho thuật toán nhận dạng Ví dụ như các ảnh thu được trong các khung hình liên tiếp có độ tương quan thấp dần khi tốc độ di
chuyển của bàn tay tăng lên
1.5.5 Nhận diện thời điểm bắt đầu và kết thúc ở một cử chỉ
Điều này rất quan trọng trong việc nhận dạng cử chỉ tay từ dữ liệu video bởi vì dữ liệu được tách thành các khung hình để xử lý Mỗi cử chỉ thực hiện trên nhiều khung hình do đó cần phải xác định số khung hình hoàn thành một cử chỉ để không bị lẫn lộn với những cử chỉ khác hoặc lặp lại một cử chỉ quá nhiều lần
Cần phân biệt cử chỉ người dùng thực hiện với những thao tác khác Giữa các cử chỉ sẽ có một số thao tác chuyển tiếp, và hệ thống nhận dạng cần phân biệt được đâu là
cử chỉ có ý nghĩa và đâu không phải là cử chỉ có ý nghĩa
1.5.6 Lựa chọn đặc trưng phù hợp
Lựa chọn đặc trưng rất quan trọng trong việc nhận dạng, bản thân việc chọn đặc trưng là để giảm số chiều xử lý nhưng phải đảm bảo mô tả được đối tượng tương đối đầy đủ Nếu lựa chọn quá nhiều đặc trưng sẽ làm tốc độ nhận dạng chậm không đáp ứng tốc độ xử lý cũng như lượng bộ nhớ cần thiết Nếu lựa chọn quá ít sẽ làm mất thông tin không đủ để mô tả đối tượng và kết quả nhận dạng không chính xác
1.5.7 Tốc độ xử lý và tính chính xác trong nhận dạng
Để hệ thống nhận dạng cử chỉ tay có thể tương tác được với người dùng trong thực tế thì hệ thống này phải có tốc độ xử lý phải nhanh Ngay cả trong một khung hình,
một hệ thống xử lý ảnh thời gian thực cần xử lý một lượng lớn dữ liệu Với công nghệ
phần cứng hiện nay, một số giải thuật đòi hỏi phần cứng chuyên dụng, đắt tiền và có khả năng xử lý song song để thực thi thời gian thực
Hiện nay, có nhiều hướng nghiên cứu về nhận dạng cử chỉ tay như: HMM, ANN, SVM,…Do đó, cần lựa chọn và sử dụng phương pháp nhận dạng phải đáp ứng được yêu cầu là độ chính xác cao, đây là yêu cầu quan trọng nhất của một hệ thống nhận dạng
1.6 MỘT SỐ ỨNG DỤNG DỰA TRÊN NHẬN DẠNG CỬ CHỈ TAY
Các cử chỉ cơ bản được phân loại thành 2 nhóm dựa trên cơ sở mục đích ứng dụng của chúng: đa điều khiển và ngôn ngữ tượng trưng
1.6.1 Ứng dụng trong thực tế ảo
Thực tế ảo (tiếng Anh là virtual reality, viết tắt là VR) là cụm từ dùng để miêu
tả một không gian ba chiều được dựng lên bởi máy tính Khi bước vào không gian ảo này, con người sẽ hòa mình vào môi trường xung quanh, có thể tự do tương tác và khám phá, có thể điều khiển vật dụng hoặc thậm chí thực hiện hàng loạt các hành động phức tạp như thể đang ở ngoài đời thật Đây là một hệ thống giao diện cấp cao giữa người sử dụng và máy tính Hệ thống này mô phỏng các sự vật và hiện tượng theo thời gian thực
và tương tác với người sử dụng qua tổng hợp các kênh cảm giác
Trang 27Tương tác thực tế ảo sử dụng cử chỉ tay cho phép các đối tượng thực sử dụng các
cử chỉ bàn tay cho các tương tác 3D [15] hoặc 2D mô phỏng 3D [12] Ưu điểm lớn nhất của việc sử dụng bàn tay để tương tác trong môi trường thực tế ảo nằm ở việc các thao tác tay là hoàn toàn tự nhiên, bởi lẽ đây là bản năng của con người Do đó, bất cứ ai cũng có thể sử dụng công nghệ này một cách dễ dàng
Hình 1.13 – Sử dụng cử chỉ tay trong ứng dụng thực tế ảo
1.6.2 Ứng dụng trong điều khiển robot
Các cử chỉ được sử dụng để tương tác và điều khiển robot hoàn toàn tương tự như các tương tác trong thực tế ảo, và được vận hành bằng cách cung cấp dữ liệu video từ máy ảnh nằm trên robot [13] Tại đây, cử chỉ có thể điều khiển bàn tay và chuyển động cánh tay của robot để tiếp cận và thao tác với các đối tượng thực, cũng như chuyển động của robot trong thế giới thực Hình 1.14 minh họa cho việc sử dụng các cử chỉ tay khác nhau để điều khiển hoạt động của robot
Hình 1.14 - Dùng các cử chỉ tay khác nhau để điều khiển robot
1.6.3 Điều khiển máy tính
Trong các ứng dụng máy tính, cử chỉ có thể cung cấp một sự tương tác thay thế cho chuột và bàn phím [17] Nhiều cử chỉ cho các tác vụ máy tính để bàn liên quan đến thao tác đồ họa, hoặc chú thích và chỉnh sửa các tài liệu dựa trên cử chỉ [16] Người dùng có thể sử dụng giọng nói, cử chỉ tay để điều khiển máy tính, trình chiếu powerpoint
và các thiết bị khác như smart tivi, …
Trang 28Hình 1.15 - Người dùng điều khiển máy tính bằng cử chỉ tay
1.6.4 Ứng dụng trong y học
Theo các nghiên cứu của Microsoft [49], một nhóm nghiên cứu tại Microsoft Research Cambridge đã tạo ứng dụng cho phép các bác sĩ trực tiếp sử dụng cử chỉ tay đơn giản để thay đổi, di chuyển, hoặc phóng to trên ảnh CT, MRI, và hình ảnh y tế khác thay vì phải hướng dẫn y tá hoặc sử dụng bàn phím và chuột để tránh nguy cơ nhiễm trùng Điều này có thể giúp các bác sĩ xác định nhanh chóng hơn các vị trí thích hợp trong quá trình phẫu thuật
âm lượng một cách rất độc đáo và thú vị (xem Hình 1.17)
Hình 1.17 - Sử dụng cử chỉ tay để điều khiển âm nhạc
Trang 29Với ControlAir người dùng chỉ việc di chuyển ngón tay qua lại để lựa chọn giữa 5 icon, khi muốn chọn cài nào thì bạn chỉ việc gập ngón tay xuống Mặc dù tỉ lệ nhận của ứng dụng không phải tuyệt đối, đôi lúc ứng dụng không nhận ra ngón tay của bạn hoặc
bị đơ và hoạt động không như ý Nhưng tổng quát thì ứng dụng vẫn hoạt động một cách rất tốt và ít khi nào gặp trường hợp nhận diện sai
Freeman [14] theo dõi bàn tay của một người chơi hoặc vị trí cơ thể để điều khiển chuyển động và định hướng các đối tượng trò chơi tương tác Play Station 2 đã giới thiệu trò chơi Eye Toy, sử dụng một camera theo dõi chuyển động tay cho các trò chơi tương tác (xem Hình 1.18)
Hình 1.18 - Sử dụng cử chỉ tay trong trò chơi Eye Toy
1.6.6 Ứng dụng trong ngôn ngữ ký hiệu
Ngôn ngữ cử chỉ là một trường hợp quan trọng của cử chỉ giao tiếp Sử dụng cử chỉ là một cách hiệu quả giúp người khuyết tật có thể giao tiếp với nhau cũng như giao tiếp với máy tính một cách hiệu quả
Hình 1.19 – Ví dụ về ngôn ngữ kí hiệu
Trên đây là giới thiệu tổng quan về nhận dạng cử chỉ tay trong giao tiếp người máy Trong khuôn khổ luận văn này, lí thuyết nhận dạng sẽ được áp dụng vào việc nhận dạng cử chỉ tay (dựa trên video thu được từ Kinect) để ứng dụng hỗ trợ chọn trang phục cho con người
Trang 30-CHƯƠNG 2 - MỘT SỐ KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ NHẬN DẠNG CỬ CHỈ TAY
2.1 MỘT SỐ KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG CỬ CHỈ TAY
Trích chọn đặc trưng là một bước không thể thiếu trong bất kỳ bài toán nhận dạng nào Các đặc trưng trích rút từ ảnh phải đạt được mục đích quan trọng là dựa trên các đặc trưng đó mà giải thuật học có thể phân biệt tốt nhất các cử chỉ tay khác nhau Có nhiều kỹ thuật trích chọn đặc trưng, luận văn chỉ giới thiệu một số kỹ thuật phổ biến dùng trong nhận dạng cử chỉ tay
2.1.1 Kỹ thuật phân tích thành phần chính - PCA
* PCA là gì?
PCA là viết tắt của Principal Components Analysis Kỹ thuật này được phát minh
năm 1901 bởi Karl Pearson [21] và hiện nay nó được sử dụng như công cụ để phân tích
dữ liệu nghiên cứu và thực hiện các mô hình dự đoán
PCA là một thuật toán thống kê sử dụng phép biến đổi trực giao để biến đổi một tập hợp dữ liệu từ một không gian nhiều chiều sang một không gian mới ít chiều hơn nhằm tối ưu hóa việc thể hiện sự biến thiên của dữ liệu
Mục tiêu của PCA là đưa không gian đặc trưng có số chiều lớn về không gian đặc
trưng có số chiều nhỏ hơn sao cho vẫn đảm bảo được “tối đa thông tin quan trọng nhất”,
với mục đích giảm thời gian tính toán và tìm kiếm Các trục tọa độ trong không gian mới được xây dựng sao cho trên mỗi trục, độ biến thiên của dữ liệu trên đó là lớn nhất
có thể
* Ví dụ: Trong hình 2.1 là ví dụ minh họa về việc sử dụng PCA để tìm các trục tọa
độ mới sao cho dữ liệu có độ biến thiên cao nhất
Hình 2.1 – Giảm số chiều trong không gian đặc trưng
Giả sử tập dữ liệu ban đầu (tập điểm màu xanh) được quan sát trong không gian 3 chiều (trục màu đen) như hình bên trái Nhận thấy rằng 3 trục này không biểu diễn được tốt nhất mức độ biến thiên của dữ liệu PCA do đó sẽ tìm hệ trục tọa độ mới (là hệ trục
Trang 31màu đỏ trong hình bên trái) Sau khi tìm được không gian mới, dữ liệu sẽ được chuyển sang không gian này để được biểu diễn như trong hình bên phải Rõ ràng hình bên phải chỉ cần 2 trục tọa độ nhưng biểu diễn tốt hơn độ biến thiên của dữ liệu so với hệ trục 3 chiều ban đầu
2.1.2 Kỹ thuật HOG
* HOG là gì?
HOG là viết tắt của Histogram of Orientation Gradient, phương pháp HOG dựa
trên việc đếm số lần xuất hiện của các hướng đạo hàm trong các vùng cục bộ ảnh
Ý tưởng cơ bản của HOG là hình dạng đối tượng trong ảnh có thể được đặc trưng tốt bởi sự phân bố theo hướng của sự thay đổi mức xám hay theo hướng của biên đối tượng [10] HOG được tính bằng cách chia ảnh thành các vùng không gian nhỏ hơn gọi
là các “tế bào” (cells), mỗi cell này tích lũy histogram 1 chiều cục bộ về các hướng
gradient hoặc định hướng biên trên các điểm ảnh nằm trong cell Các cell nằm cạnh nhau được gộp lại thành một khối (block), các khối có thể chồng lên nhau với mục đích tăng cường mối quan hệ trong không gian giữa các điểm ảnh Các histogram của khối được kết hợp với nhau tạo thành vector đặc trưng Để tăng cường hiệu năng nhận dạng, các histogram cục bộ có thể được chuẩn hóa về độ tương phản bằng cách tính một ngưỡng cường độ cho khối và sử dụng ngưỡng đó để chuẩn hóa tất cả các cell trong khối Kết quả của bước chuẩn hóa này là vectơ đặc trưng sẽ có tính bất biến cao hơn đối với các thay đổi về điều kiện ánh sáng
Hình 2.2 - Ảnh sau khi tính gradient và chia thành các cell
* Ví dụ:
Hình 2.3 là ví dụ về tính gradient ảnh cử chỉ tay [39]
Ảnh gốc Ảnh xám Gradient theo x Gradient theo y
Hình 2.3 - Ảnh input và gradient theo hai hướng của ảnh
Trang 322.1.3 Kỹ thuật trích đặc trưng cục bộ bất biến - SIFT
* SIFT là gì?
SIFT là viết tắt của Scale Invariant Feature Transforms - phép biến đổi đặc tính
bất biến tỉ lệ, do David G.Lowe đề xuất Đối với bất kỳ một đối tượng nào trong ảnh sẽ
có rất nhiều đặc trưng để mô tả, tuy nhiên David G.Lowe chỉ ra rằng có các điểm đặc biệt trên đối tượng có thể trích chọn mô tả tốt cho đối tượng, còn gọi là các điểm hấp dẫn (điểm quan trọng) "Hấp dẫn" ở đây có nghĩa là điểm đó có thể có các đặc trưng bất biến với việc quay ảnh, co giãn ảnh hay thay đổi cường độ chiếu sáng của ảnh Mô tả này có thể được sử dụng để xác định đối tượng trong một ảnh chứa rất nhiều đối tượng khác nhau
Các đặc trưng cục bộ bất biến SIFT của ảnh thì bất biến với việc thay đổi tỉ lệ ảnh, quay ảnh, đôi khi là thay đổi điểm nhìn và thêm nhiễu ảnh hay thay đổi cường độ chiếu sáng của ảnh Các đặc trưng SIFT này được trích rút ra từ các điểm hấp dẫn cục bộ trên ảnh [18-20]
* Thuật toán SIFT: Thuật toán SIFT được tiếp cận theo phương pháp thác lọc,
theo đó phương pháp được thực hiện theo các bước [38]:
Bước 1 Phát hiện các điểm cực trị trong không gian tỉ lệ
Bước đầu tiên này tiến hành tìm kiếm các điểm hấp dẫn trên tất cả các tỉ lệ và vị trí của ảnh
Các kỹ thuật đa dạng có thể được sử dụng để phát hiện ra các vị trí đặc biệt cố định
trong không gian tỉ lệ Difference of Gaussian (DoG) là một trong các các kỹ thuật đó
Hàm DoG được sử dụng để xác định tất cả các điểm hấp dẫn tiềm năng mà bất biến với quy mô và hướng của ảnh Các điểm hấp dẫn với đặc trưng SIFT tương thích với các
cực trị địa phương của bộ lọc DoG ở các tỉ lệ khác nhau
Hình 2.4 – Mô tả hàm Gaussian và hàm DoG
Trang 33Mỗi điểm ảnh trong DoG được so sánh với 8 điểm ảnh láng giềng của nó ở cùng
tỉ lệ đó và 9 láng giềng kề ở các tỉ lệ ngay trước và sau nó Nếu điểm ảnh đó đạt giá trị cực tiểu hoặc cực đại thì sẽ được chọn làm các điểm hấp dẫn ứng viên
Hình 2.5– Phát hiện cực trị của hàm DoG
Bước 2 Định vị các điểm hấp dẫn
Mỗi điểm hấp dẫn ứng viên sau khi có được ở bước 1 sẽ được đánh giá xem có được giữ lại hay không?
- Loại bỏ những điểm hấp dẫn có độ tương phản thấp
- Loại bỏ một số điểm hấp dẫn dọc theo các cạnh không giữ được tính ổn định khi ảnh bị nhiễu (có thông tin định vị mập mờ về cạnh)
Các điểm hấp dẫn còn lại sẽ được xác định hướng trong bước tiếp theo
Bước 3: Xác định hướng cho các điểm hấp dẫn
Bước này sẽ xác định hướng cho các điểm hấp dẫn được chọn sau bước 2 Trong
giai đoạn này hướng tới việc chỉ định sự định hướng phù hợp tới những điểm hấp dẫn dựa trên các đặc tính cục bộ của ảnh Để xác định hướng cho các điểm hấp dẫn, người
ta tính toán biểu đồ hướng gradient trong vùng láng giềng của điểm hấp dẫn
Bước 4: Mô tả các điểm hấp dẫn
Các điểm hấp dẫn sau khi được xác định hướng sẽ được mô tả dưới dạng các
vector đặc trưng nhiều chiều Mô tả điểm hấp dẫn sử dụng 16 histogram, xếp hàng
thành lưới 4x4,với 8 hướng Kết quả là vectơ định hướng sẽ có 8*16 = 128 chiều
Hình 2.6 – Hướng phân bố trên ảnh và mô tả điểm hấp dẫn
Trang 34* Ví dụ:
Hình 2.7 [28] minh họa cho việc trích xuất và hiển thị các đặc trưng SIFT từ 5 hình ảnh tay, tính từ trái sang phải có 67, 57, 63, 70 và 85 đặc trưng SIFT được trích xuất từ hình ảnh tay tương ứng
Hình 2.7 – Đặc trưng SIFT của ảnh cử chỉ tay
2.1.4 Kỹ thuật Haar-Like
* Haar-Like là gì?
Một kỹ thuật trích chọn đặc trưng dựa trên phân bố mức xám là phép biến đổi Haar-Like do Viola và Jones công bố Đặc trưng Haar-Like [11] 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 Đặc trưng Haar-Like dựa trên ý tưởng tính độ chênh lệch giữa các giá trị mức xám của các điểm ảnh trong các vùng kề nhau trong ảnh xám, mỗi đặc trưng là sự kết hợp của các hình chữ nhật “trắng” hay
“đen” theo một trật tự, kích thước nào đó Hình 2.8 mô tả 4 đặc trưng Haak-Like cơ bản như sau:
Hình 2.8 – Các đặc trưng Haar-Like cơ bản
Để phát hiện đối tượng trong ảnh tốt hơn, các đặc trưng Haar-Like cơ bản trên được mở rộng thành các nhóm đặc trưng cạnh, đặc trưng đường và đặc trưng tâm [37] (xem Hình 2.9)
Hình 2.9 – Các đặc trưng Haar-Like mở rộng
Lợi ích của đặc trưng Haar-Like là nó diễn đạt được tri thức về các đối tượng trong ảnh 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
Trang 35điểm ảnh không diễn đạt được Giá trị của đặc trưng Haar-Like là sự chênh lệch giữa tổng giá trị các điểm ảnh của các vùng đen và các vùng trắng
* Ví dụ:
Hình 2.10 minh họa cho việc dùng đặc trưng Haar-Like để nhận dạng cử chỉ tay
Hình 2.10 - Đặc trưng Haar-Like cho cử chỉ tay
2.1.5 Kỹ thuật GIST
* GIST là gì?
Hình dáng bàn tay cũng là một thông tin quan trọng để phân biệt các cử chỉ tay khác nhau Để trích đặc trưng về hình dáng bàn tay ta sử dụng đặc trưng GIST [27] Đặc trưng GIST thuộc nhóm đặc trưng biến đổi toàn cục và triển khai chuỗi Khác với đặc trưng SIFT, GIST là một đặc trưng toàn cục biểu diễn nội dung ảnh được Oliva
&Torralba đề xuất năm 2001 Phương pháp GIST rút trích từ ảnh tập hợp các đặc trưng quan trọng như tính tự nhiên, mở rộng, độ nhám, độ chắc chắn, cho phép trình bày cấu trúc không gian của một cảnh
Để tính toán đặc trưng mô tả GIST, ảnh đầu vào được đưa về dạng vuông, chia thành lưới 4 x 4, các tổ chức đồ theo hướng tương ứng được trích ra Nguyên lý trích đặc trưng dựa vào phép biến đổi Gabor theo các hướng và tần số khác nhau Như vậy, đặc trưng GIST thể hiện dưới dạng một vectơ và mỗi vectơ này được được tính toán từ kết quả của việc áp dụng bộ lọc Gabor lên ảnh Từ dữ liệu đầu vào, sau khi trích đặc trưng sẽ cho ra một vectơ 960 chiều Sau bước trích đặc trưng này, tập dữ liệu ảnh đưa
về dạng bảng hay ma trận mà ở đó mỗi ảnh là một dòng có 960 cột (chiều)
* Tính toán đặc trưng GIST:
Đặc trưng GIST được tiến hành theo các bước như sau:
- Ảnh đầu vào sau khi được tiền xử lý sẽ được tách ra thành 3 kênh màu Red, Green
và Blue riêng biệt
- Áp dụng phép biến đổi Fourier trên mỗi kênh màu
- Ứng với mỗi ảnh Fourier áp dụng lần lượt 20 bộ lọc Gabor lên ảnh Bộ lọc Gabor được tạo ra ở 3 scale và 8 hướng Trong đó, scale 1 và scale 2 sử dụng 8 bộ lọc, scale 3
sử dụng 4 bộ lọc
- Cuối cùng, kết quả của mỗi bộ lọc được đưa qua phép biến đổi Fourier ngược, sau đó chia thành 16 vùng bằng nhau và trích đặc trưng Kết quả của mỗi vùng là một đặc trưng
Trang 36Như vậy, số chiều của đặc trưng GIST là 3*(8+8+4)*16=960 chiều
* Ví dụ:
- Hình 2.11 minh họa việc áp dụng bộ lọc Gabor lên ảnh theo 8 hướng khác nhau:
Hình 2.11 – Áp dụng bộ lọc Gabor theo 8 hướng [52]
- Hình 2.12 minh họa cho quá trình trích đặc trưng GIST cho ảnh đầu vào:
Hình 2.12 – Quá trình trích đặc trưng GIST cho ảnh [52]
2.1.6 Kỹ thuật trích xương ảnh của bàn tay (Skeleton of the Hand)
* Đặc trưng xương ảnh là gì?
Xương được coi như hình dạng cơ bản của một đối tượng, với số ít các điểm ảnh
cơ bản Ta có thể lấy được các thông tin về hình dạng nguyên bản của một đối tượng thông qua xương của đối tượng đó
Xương ảnh lần đầu tiên được xác định bởi tác giả Blum (năm 1976), đây là cách
mô tả hình dạng rất hữu ích và quan trọng cho nhận dạng đối tượng vì nó chứa các đặc trưng hình dạng của đối tượng gốc Hình dạng tương tự dựa trên đối sánh xương thường thực hiện nhanh hơn đường biên Do vậy xương được sử dụng để biểu diễn và phân tích hình dạng trong nhiều lĩnh vực nhận dạng hình ảnh: nhận dạng kí tự, nhận dạng cử chỉ,… Trong trích xuất đặc trưng xương ảnh của đối tượng tay, một tập hợp các tham số của vùng xương tay sẽ được tính toán Các thuộc tính mong muốn của bộ xương là: bảo