ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN THỊ THƯƠNG
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
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01
TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Đà Nẵng – Năm 2017
Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: TS. Huỳnh Hữu Hưng
Phản biện 1: PGS.TSKH. Trần Quốc Chiến
Phản biện 2: PGS.TS. Lê Mạnh Thạnh
Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt
nghiệp thạc sĩ khoa học máy tính họp tại Trường Đại học
Bách khoa vào ngày 13 tháng 08 năm 2017.
Có thể tìm hiểu luận văn tại:
- Trung tâm học liệu, Đại học Đà nẵng tại trường Đại học
Bách khoa
- Thư viện khoa Công nghệ thông tin, Trường Đại học Bách
khoa - Đại học Đà Nẵng
1
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 20072008 (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ề.
2
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, 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 của đề tài.
- Viết chương trình để kiểm tra tính hiệu quả của giải pháp.
3. Đố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 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à cử chỉ tay động.
- Nghiên cứu nhận dạng cử chỉ tay dựa trên video thu được từ
camera Kinect.
3
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 hệ thống nhận dạng cử chỉ tay ứng
dụng hỗ trợ chọn trang phục như sau:
4
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
- Đư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 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.
Chương 3 - Xây dựng hệ thống nhận dạng cử chỉ tay hỗ trợ
chọn trang phục.
Kết luận và hướng phát triển.
5
CHƯƠ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
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. 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]. 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.
Để 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.
Sau đó, 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.
6
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. Tổng cộng có 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.
1.3. PHÂN LOẠI CỬ CHỈ 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 2 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í 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. 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.
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. 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ư 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.
7
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]:
DỮ LIỆU
VÀO
TIỀN XỬ LÝ
TRÍCH ĐẶC
TRƯNG
NHẬN DẠNG
Hình 1.5 – Sơ đồ khối của hệ thống nhận dạng cử chỉ tay
1.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, đượ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.
1.4.3. Tiền xử lý
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. Tiền xử lý ảnh là bắt buộc để nâng cao chất lượng ảnh đồng
thời cải thiện độ chính xác của hệ thống được đề xuất. 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 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). Chẳng
hạn những điểm ảnh trong vùng tay có màu trắng và điểm ảnh nền có
màu đen.
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ần phải được loại bỏ.
8
c. Phân đoạn ảnh
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
Phân đoạn ảnh dựa trên biên (cạnh)
Phân đoạn ảnh dựa vào màu da
1.4.4. Trích chọn đặc trưng
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, đặc điểm biến đổi, đặc điểm biên và đường biên,…
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 đó. 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.
9
Có nhiều kỹ thuật nhận dạng khác nhau như: máy vectơ hỗ trợ
(SVM), mạng nơ-ron nhân tạo (ANN), mô hình Makov ẩn (HMM),…
1.5. NHỮNG THÁCH THỨC TRONG NHẬN DẠNG CỬ CHỈ TAY
1.5.1. Bài toán có quá nhiều chiều
Mỗi bàn tay có rất nhiều hình trạng, 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. 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 đủ.
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.
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. Tốc độ di chuyển nhanh của bàn tay kết hợp với tần số lấy mẫ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.
1.5.5. Nhận diện thời điểm bắt đầu và kết thúc ở một cử chỉ
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
10
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 đủ.
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ý nhanh
và 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
1.6.1. Ứng dụng trong thực tế ảo
1.6.2. Ứng dụng trong điều khiển robot
1.6.3. Điều khiển máy tính
1.6.4. Ứng dụng trong y học
1.6.5. Ứng dụng trong lĩnh vực giải trí
1.6.6. Ứng dụng trong ngôn ngữ ký hiệu
11
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
2.1.1. Phân tích thành phần chính - PCA
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ể.
2.1.2. Kỹ thuật HOG
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 (gradient) 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.
12
2.1.3. Kỹ thuật trích đặc trưng cục bộ bất biến - SIFT
SIFT - 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). Điểm hấp dẫn là vị trí điểm
ảnh "hấp dẫn" trên ảnh. "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[18-20].
Thuật toán SIFT được tiếp cận theo phương pháp thác lọc [38]:
- Bước 1. Phát hiện các điểm cực trị trong không gian tỉ lệ
- Bước 2. Định vị các điểm hấp dẫn
- Bước 3: Xác định hướng cho các điểm hấp dẫn
- Bước 4: Mô tả các điểm hấp dẫn
2.1.4. Kỹ thuật Haar-Like
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 HaarLike [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 đó.
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
13
của đối tượng, điều mà bản thân từng đ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.
2.1.5. Kỹ thuật GIST
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).
2.1.6. Kỹ thuật trích đặc trưng xương ảnh của bàn tay
* Đặ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 nó.
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
14
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.
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 toàn cấu trúc liên kết của đối tượng,
chống lại tốt phép dịch, phép quay và tỷ lệ mở rộng, mỏng (độ rộng
không quá 2 pixel). Có nhiều phương pháp và thuật toán được dùng để
trích rút bộ xương: phương pháp phân tích, phương pháp hình thái học,
phương pháp làm mỏng (mảnh) và phương pháp dựa trên phép biến
đổi khoảng cách.
* Phương pháp tìm xương ảnh:
Việc khai thác xương ảnh của vùng tay sẽ được thực hiện dựa
trên phép biến đổi khoảng cách Chamfer như mô tả trong [33].
* Tham số hóa bộ xương:
Bộ xương tay thu được sẽ được sử dụng để chiết xuất đặc điểm
cử chỉ tay. Đối với mỗi cử chỉ tay, một bộ tham số dựa trên các tính
chất hình học của bộ xương sẽ được tính toán. Vị trí của một số điểm
quan trọng cũng sẽ được phân tích: điểm đầu cuối, giao lộ, phân đoạn.
2.2. MỘT SỐ KỸ THUẬT NHẬN DẠNG CỬ CHỈ TAY
2.2.1. Kỹ thuật K-láng giềng gần nhất
K-láng giềng gần nhất (K-NN) là phương pháp để phân lớp các
đối tượng dựa vào khoảng cách gần nhất giữa đối tượng cần phân lớp
và tất cả các đối tượng trong tập dữ liệu mẫu.
Trong [32], các tác giả đã xây dựng hệ thống nhận dạng các số
từ 0 đến 9 tương ứng với 10 cử chỉ tay khác nhau dựa trên các phương
pháp phân loại K-NN, SVM và BBNN. Trong đó, kết quả nhận dạng
của hệ thống sử dụng K-NN đạt độ chính xác 96%, sử dụng SVM đạt
độ chính xác 98,4% và sử dụng BBNN đạt 93,01%.
15
2.2.2. Kỹ thuật sử dụng mạng nơ-ron nhân tạo - ANN
ANN là một mô hình xử lý thông tin phỏng theo cách thức xử
lý thông tin của các hệ nơ-ron sinh học, được nghiên cứu ra từ hệ thống
thần kinh của sinh vật, giống như bộ não để xử lý thông tin.
Nghiên cứu [43] sử dụng ANN để nhận dạng cử chỉ tay. Tiến
hành thử nghiệm với 4 kiểu cử chỉ tay, mỗi kiểu sử dụng 100 khung
hình, kết quả đánh giá tỉ lệ nhận dạng chính xác đạt tối đa là 97%, tỉ
lệ nhận dạng chính xác chung của hệ thống đạt 88.7%.
Trong [30], các tác giả đã xây dựng hệ thống nhận dạng cử chỉ
tay tĩnh bằng ANN. Hệ thống chọn nhận dạng10 chữ cái: A, B, C, D,
G, H, I, L, V, Y tương ứng 10 cử chỉ tay. Quá trình huấn luyện, hệ
thống sử dụng 450 mẫu, trong đó một cử chỉ tay có thể có nhiều góc
nhìn khác nhau. Quá trình thử nghiệm, hệ thống sử dụng 445 mẫu từ
nhiều nguồn khác nhau. Kết quả thử nghiệm cho độ chính xác là 98%.
2.2.3. Kỹ thuật sử dụng máy vector hỗ trợ - SVM
SVM là một thuật toán học máy nổi tiếng được sử dụng để giải
quyết bài toán phân lớp, SVM sẽ cố gắng tìm cách phân loại dữ liệu
sao cho lỗi xảy ra trên tập kiểm tra là nhỏ nhất [23]. SVM được xây
dựng trên cơ sở hai ý tưởng chính:
Ý tưởng thứ nhất: Ánh xạ dữ liệu gốc sang một không gian
mới gọi là không gian đặc trưng với số chiều lớn hơn, sao cho trong
không gian mới có thể xây dựng một siêu phẳng cho phép phân chia
dữ liệu thành hai lớp riêng biệt, mỗi lớp bao gồm các điểm có cùng
nhãn phân loại.
Ý tưởng thứ hai: Trong số những siêu phẳng như vậy cần lựa
chọn siêu phẳng có mức lề lớn nhất còn được gọi là siêu phẳng phân
cách tối ưu. Lề ở đây được xác định bằng khoảng cách giữa các điểm
gần siêu phẳng nhất mà chúng thuộc về hai phía của siêu phẳng.
16
Trong [25], Md. Hafizur Rahman và Jinia Afrin đã đề xuất hệ
thống nhận dạng cử chỉ tay bằng cách sử dụng SVM đa lớp để phân
loại 10 cử chỉ tay tương ứng với A, B, C, D, G, H, I, L, V, Y. Hệ thống
nhận dạng cho hiệu suất tốt, có thể cho kết quả nhận dạng chính xác
đạt đến 92%.
Trong [45], hệ thống nhận dạng cử chỉ tay tĩnh cho ngôn ngữ ký
hiệu Hoa Kỳ bằng cách sử dụng đặc trưng Edge Oriented Histogram
(EOH) và SVM đa lớp được xây dựng. Các kết quả thực nghiệm chứng
minh rằng hệ thống được đề xuất cho tỷ lệ thành công 93,75%.
2.2.4. Sử dụng mô hình Markov ẩn - HMM
HMM được bắt đầu xây dựng và công bố từ những năm 1960,
đây là mô hình toán học về thống kê. Từ năm 1980, mô hình này được
bắt đầu nghiên cứu để ứng dụng trong lĩnh vực nhận dạng.
Trong [47], Lang và các tác giả sử dụng mô hình Markov ẩn cho
hệ thống nhận dạng ngôn ngữ ký hiệu sử dụng Kinect. Kết quả nhận
dạng của hệ thống đạt trên 97% với 8 trong 9 dấu hiệu đào tạo do nhiều
người thực hiện.
Trong [53], Tanibata và các tác giả đã phát triển hệ thống nhận
dạng ngôn ngữ ký hiệu Nhật Bản không sử dụng găng tay mà dùng
một máy ảnh để thu nhận dữ liệu đầu vào với ảnh nền bất kỳ. Để nhận
dạng các từ trong ngôn ngữ ký hiệu Nhật Bản, hệ thống sử dụng một
chuỗi gồm 6 tính năng đặc trưng cho mô hình Markov ẩn phân loại và
nhận dạng. Trong thử nghiệm hệ thống nhận dạng ngôn ngữ ký hiệu
Nhật Bản đạt tỉ lệ thành công tối đa 64/65 từ.
Trong [46], HMM được sử dụng thành công để phân biệt lên
đến 40 cử chỉ tay khác nhau với độ chính xác lên đến 91,9%.
17
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
3.1. MÔ TẢ BÀI TOÁN
Bài toán được mô tả dưới dạng sơ đồ sau:
Hình 3.1 - Sơ đồ khối của bài toán
3.2. GIẢI PHÁP ĐỀ XUẤT CỦA HỆ THỐNG
3.2.1. Sơ đồ hoạt động của hệ thống
Hình 3.2 - Sơ đồ hoạt động của hệ thống
18
3.2.2. Tiến trình nhận dạng cử chỉ tay của hệ thống
Hình 3.3 – Tiến trình nhận dạng cử chỉ tay của hệ thống
3.2.3. Phát hiện bàn tay
Giải pháp được đề xuất trong luận văn này sử dụng camera
Kinect 2.0 làm thiết bị thu nhận ảnh. Nhờ có 2 cảm biến thu và phát
sóng hồng ngoại, camera Kinect 2.0 được sử dụng trong luận văn này
có khả năng xây dựng ảnh độ sâu trong vùng không gian thuộc phạm
vi từ 0.5m đến 4.5m tính đến tâm Kinect.
3.2.4. Tiền xử lý
Trong luận văn này, chuẩn hóa kích thước ảnh được thực hiện
thông qua hai bước: ghép vùng ảnh để tạo ra ảnh vuông và đưa kích
thước ảnh về một giá trị cố định (100×100 pixel).
Sau đó, dựa vào các hàm hỗ trợ trong bộ thư viện Microsoft
Kinect SDK để xây dựng các hàm để có thể lấy dữ liệu khung xương
và hàm lấy trạng thái của bàn tay phải của đối tượng.
3.2.5. Trích chọn đặc trưng
Như đã giới thiệu, camera Kinect cho phép theo dõi khung
xương của người đứng trước camera, cụ thể là với mỗi khung hình
camera Kinect 2.0 thu được 25 khớp xương (mỗi khớp xương là một
điểm trong không gian 3 chiều: chiều ngang, chiều dọc và chiều sâu)
tương ứng với 25 tọa độ (x,y,z). Đặc trưng được dùng để biểu diễn đối
tượng trong luận văn này là đặc trưng hình học của khung xương, vị
19
trí tọa độ khớp xương và tọa độ bàn tay phải của đối tượng. Sau khi có
các hàm lấy dữ liệu khung xương ở giai đoạn tiền xử lý rồi thì việc lấy
tọa độ các khớp xương là rất dễ dàng.
Trong khuôn khổ luận văn, tôi chỉ dùng tọa độ đốt xương cuối
của cột sống để xác định mốc tọa độ cho trang phục áo quần (có thể
lấy thêm tọa độ khớp xương cổ). Để xác định mốc tọa độ cho khăn
quàng cổ tôi sử dụng tọa độ khớp xương cổ. Đối với mốc tọa độ của
túi xách tôi lấy tọa độ khớp xương của bàn tay.
Tọa độ bàn tay phải cũng được lấy tương tự các khớp xương
khác. Việc xác định trạng thái nắm, mở của bàn tay phải thì thư viện
SDK đã có sẵn. Muốn phân biệt được nhiều trạng thái tay khác nhau
thì có thể dùng SVM để huấn luyện.
Xác định ngưỡng cho các nút điều khiển: Hệ thống sẽ được thiết
kế các nút điều khiển để làm việc, do đó cần quy định ngưỡng tọa độ
cho các nút này. Trong luận văn, tôi tiến hành khoanh một vùng có
kích thước 30*30 có tâm là tọa độ của nút đó. Vùng này tạm gọi là
vùng chọn. Khi bàn tay phải rơi vào vùng chọn và trạng thái bàn tay
phải nắm thì lệnh điều khiển sẽ được thực hiện.
3.2.6. Huấn luyện và nhận dạng cử chỉ tay
Phương pháp huấn luyện và nhận dạng cử chỉ tay sử dụng trong
luận văn này là SVM (phương pháp SVM đã được trình bày trong
chương 2). Tuy nhiên, luận văn chỉ sử dụng cử chỉ tay đơn giản (cử chỉ
nắm/mở của bàn tay), dùng các hàm có sẵn trong bộ thư viện Microsoft
Kinect SDK – đây là những hàm đã được hệ thống sử dụng SVM để
huấn luyện trước. Do đó, nhiệm vụ quan trọng là cần phải trích chọn
các đặc trưng sao cho phù hợp với yêu cầu dữ liệu vào của hàm tương
ứng.
20
3.3. XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG
3.3.1. Tổng quan về chương trình
Hình 3.7 – Sơ đồ mô tả chương trình ứng dụng
3.3.2. Xây dựng CSDL hình ảnh trang phục
Ảnh trang phục được sử dụng trong chương trình ứng dụng gồm
các loại: Áo quần, khăn quàng cổ và túi xách dành cho nữ giới.
3.3.3. Thuật toán
Camera Kinect cung cấp tọa độ nhiều khớp xương trên cơ thể.
Thư viện Microsoft Kinect SDK hỗ trợ các hàm để có thể bắt tọa độ
các khớp xương và đặc biệt là có thể cho biết một số trạng thái của tay
như nắm, mở… Từ đó, tôi tiến hành xây dựng thuật toán như sau:
Bước 1: - Khởi động Kinect;
- Lấy tọa độ đốt sống cuối cùng của xương cột sống
cột sống, tọa độ xương hông, tọa độ khớp xương cổ và tọa độ khớp
xương bàn tay phải của người dùng;
- Tạo các nút lệnh chức năng theo các tọa độ định sẵn.
Bước 2: Kiểm tra tọa độ bàn tay phải có thuộc khu vực các nút
lệnh chức năng không? Nếu một nút chức năng có tọa độ là (x,y) thì
21
khi tọa độ bàn tay phải nằm trong phạm vi (x ± 30, y ± 30) gọi là thuộc
nút chức năng đó.
+ Đúng: Thực hiện bước 3;
+ Sai: Chuyển bước 5;
Bước 3: Kiểm tra trạng thái bàn tay phải nắm không?
+ Đúng: Thực hiện bước 4;
+ Sai: Chuyển bước 8
Bước 4: Thực hiện chức năng của nút lệnh được chọn.
Bước 5: Kiểm tra tọa độ bàn tay phải có thuộc khu vực hiển thị
mẫu trang phục không?
+ Đúng: Thực hiện bước 6;
+ Sai: Chuyển bước 8;
Bước 6: Kiểm tra trạng thái bàn tay phải nắm không?
+ Đúng: Thực hiện bước 7;
+ Sai: Chuyển bước 8;
Bước 7: Thực hiện việc áp trang phục được chọn tương ứng lên
cơ thể người dùng. Trang phục áo quần được chọn sẽ áp lên cơ thể
người dùng theo tọa độ đốt xương sống dưới cùng của xương cột sống
người dùng để đảm bảo trang phục đó sẽ khớp vào cơ thể của người
dùng. Nguyên tắc là: trục đối xứng của ảnh trang phục sẽ trùng với
xương cột sống. Nếu là áo thì tọa độ thấp nhất của áo theo trục y sẽ
ngang với tọa độ đốt xương sống dưới cùng theo y; nếu là chân váy
(quần) thì tọa độ cao nhất của chân váy (quần) theo trục y sẽ cao hơn
tọa độ đốt xương sống dưới cùng theo y cộng thêm một khoảng 30
pixel; nếu là váy thì tọa độ trung tâm của váy sẽ cao hơn tọa độ đốt
xương sống dưới cùng một khoảng 30 pixel theo trục y. Tương tự, đối
với khăn quàng cổ sẽ được áp vào cổ người dùng dựa vào tọa độ xương
cổ và túi xách được áp vào tay người dùng dựa vào tọa độ bàn tay.
22
Cách để trang phục ướm lên người và di chuyển theo là cài đặt
tọa độ hiển thị ảnh trang phục theo tọa độ khớp xương của người dùng
đã xác định ở giai đoạn trích chọn đặc trưng.
Bước 8: Kết thúc.
3.3.4. Chương trình
3.3.5. Thực nghiệm
Sau khi xây dựng chương trình, tôi đã cho thử nghiệm ở các môi
trường và điều kiện ánh sáng khác nhau. Khoảng cách từ người dùng
đến camera Kinect là 2m. Kết quả nhận được là với các điều kiền kiện
á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%. 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.
23
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Nhận dạng cử chỉ tay trong lĩnh vực xử lý ảnh và thị giác máy
tính đang được các nước trên thế giới phát triển và đạt được những
thành tựu đáng kể trong thời gian gần đây. Từ đó, tôi đã thực hiện đề
tài về nhận dạng cử chỉ tay trong giao tiếp người-máy, với mục tiêu là
thiết kế một giao diện người-máy cho phép giao tiếp hiệu quả và hấp
dẫn, hỗ trợ việc chọn trang phục của con người trong ngành may. Qua
quá trình nghiên cứu và thực hiện, luận văn đã đạt được những kết quả
sau:
Luận văn đã trình bày những kiến thức tổng quan về cử chỉ tay
và cơ sở lý thuyết về nhận dạng cử chỉ tay trong giao tiếp người-máy.
Luận văn đã nghiên cứu và lựa chọn kỹ lưỡng một số kỹ thuật
trích chọn đặc trưng ảnh cử tay, các thuật toán nhận dạng cử chỉ tay
phổ biến và hiệu quả hiện nay. Đồng thời luận văn cũng đã tìm hiểu
khả năng ứng dụng và hiệu quả nhận dạng chính xác của một số hệ
thống nhận dạng cử chỉ tay đã được một số tác giả xây dựng trước đó.
Luận văn đã xây dựng thành công chương trình thực nghiệm
nhận dạng cử chỉ tay từ video thu được trên Kinect để giao tiếp ngườimáy và ứng dụng hỗ trợ giúp con người xem, chọn và thử trang phục
dễ dàng, đáp ứng được được yêu cầu về thời gian thực.
Trong quá trình thực hiện đề tài, do có nhiều hạn chế (về thời
gian thực hiện, về trình độ của bản thân,. .) nên kết quả đạt được chưa
cao: chỉ mới tạo CSDL trang phục cho áp dụng cho nữ giới, số lượng
mẫu trang phục còn ít, chương trình hoạt động chưa tốt trong điều kiện
ánh sáng không ổn định, chỉ mới giới hạn trong một cử chỉ điều khiển
đơn giản,…