CHƯƠNG III: NHẬN DẠNG CỬ CHỈ BÀN TAY ỨNG DỤNG TRONG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN GIA DỤNG
3.1. Bài toán nhận dạng cử chỉ bàn tay ứng dụng trong điều khiển thiết bị điện
Sơ đồ khối hệ thống
Hình 3. 1 - Sơ đồ khối của hệ thống
Hệ thống gồm 3 khối chính :
Khối nhận dạng cử chỉ
Khối điều khiển thiết bị
Khối thực thi lệnh điều khiển (Các thiết bị).
Hệ thống hoạt động dựa trên 1 webcam dùng để ghi nhận hình trạng của bàn tay. Khi người dùng đưa ra một hình trạng của bàn tay trước webcam, khối nhận dạng cử chỉ tách từng khung hình trong chuỗi video thu được. Tại mỗi khung hình, khối nhận dạng cử chỉ sẽ trích chọn các đặc trưng sau đó đưa các đặc trưng này vào bộ phân loại cử chỉ để xác định lớp mà cử chỉ thao tác thuộc vào. Khối điều khiển
chương trình thực hiện thao tác chuyển các cử chỉ nhận dạng thành các lệnh điều khiển tương ứng. Khối thực thi lệnh sẽ thực thi các lệnh tương ứng với từng cử chỉ đã được nhận dạng.
Hệ thống thể sử dụng trong nhiều ứng dụng khác nhau. Ví dụ hệ thống có thể mở rộng để điều khiển điều khiển ti vi, điều khiển hoạt động của robot, v.v.
Vì khối thực thi là khối sẵn có (các chương trình ứng dụng) nên trong phần sau, đồ án sẽ trình bày kỹ về khối nhận dạng cử chỉ và khối điều khiển.
Sơ đồ nguyên lý hoạt động của khối nhận dạng cử chỉ
Hình 3. 2 - Khối nhận dạng cử chỉ
Khối nhận dạng cử chỉ xác định trong chuỗi video đầu vào có xuất hiện cử chỉ điều khiển đã được định nghĩa hay không. Trước khi có thể nhận dạng, hệ thống phải tiến hành huấn luyện với tập dữ liệu ảnh để đưa ra mô hình nhận dạng (trong chương trình sử dụng mô hình phân lớp dữ liệu Adaboost và cấu trúc phân tầng cascade). Trong quá trình nhận dạng, chuỗi video sẽ được tách ra thành từng khung
hình (frame). Các khung hình này sẽ là đầu vào cho quá trình nhận dạng. Hệ thống sẽ trả lại kết quả bức ảnh đầu vào có chứa cử chỉ đang xét hay không. Nếu có N khung hình liên tiếp trong chuỗi video có chứa cùng một cử chỉ thì chương trình sẽ chuyển sang khối điều khiển với cử chỉ đó (trong phần thực nghiệm của luận văn này, chọn N = 5).
Sơ đồ nguyên lý hoạt động của khối điều khiển
Khối điều khiển chương trình thực hiện thao tác chuyển các cử chỉ nhận dạng thành các lệnh điều khiển tương ứng. Với mỗi cử chỉ được nhận dạng và phân loại sẽ tương ứng với một (hay một vài) thông điệp gửi đến hệ điều hành (hoặc đến một chương trình cụ thể). Thông điệp được gửi đến hệ điều hành có thể là thông điệp bàn sự kiện bàn phím hay sự kiện chuột tùy vào ý đồ điều khiển của người lập trình.
Ví dụ sơ đồ sau minh họa lệnh điều khiển đến thiết bị :
Hình 3. 3 - Sơ đồ nguyên lý hoạt động của khối điều khiển thiết bị
Với mỗi cử chỉ được khối nhận dạng cử chỉ phân loại sẽ gửi thông điều khiển tương ứng đến hệ điều hành thông qua cấu trúc case-of. Hệ điều hành sẽ gửi lệnh điều khiển tương ứng đến thiết bị. Tùy vào lệnh nhận được mà thiết bị phản ứng khác nhau như: Điều hòa tăng giảm nhiệt độ, đổi hướng gió, chuyển chế độ hoạt động, v.v…
Sơ đồ thiết kế của khối điều khiển thiết bị ngoại vi
Gồm 2 phần, phần nhận tín hiệu điều khiển từ cổng COM máy tính chuyển thành tín hiệu điều khiển thông qua MAX232, vi điều khiển C8051 và thiết bị phát RF PT2262. Phần thu tín hiệu RF và điều khiển thiết bị gồm PCR1A và vi điều khienr PT2272.
Hình 3. 4 - Sơ đồ thiết kế phần nhận tín hiệu điều khiển từ cổng COM của máy tính và phát sóng RF
Hình 3. 5 - Sơ đồ thiết kế bộ thu tín hiệu và điều khiển thiết bị Thiết kế tập cử chỉ bàn tay
Trong hầu hết các thiết kế tập cử chỉ tương tác, các vấn đề kỹ thuật thường được đặt lên hàng đầu mà không chú ý đến yếu tố hướng đối tượng sử dụng. Ngoài ra, một vấn đề cũng cần phải được quan tâm đó là một cử chỉ phụ thuộc rất nhiều vào văn hóa, xã hội. Một cử chỉ có thể được coi là bình thường trong một xã hội, một nền văn hóa này thì lại được coi là bất thường trong một xã hội, nền văn hóa khác. Mục tiêu của việc thiết kế một tập cử chỉ là phải đạt được hai tiêu chí :
- Hướng đến đối tượng tương tác : Đem lại sự trực quan và thoải mái đối với đối tượng thực hiện nó.
- Hướng đến hệ thống : Tập cử chỉ phải phân biệt để tăng khả năng nhận dạng của hệ thống.
Có hai bước chính cần được xem xét trong việc thiết kế một tập cử chỉ :
- Định nghĩa các tập lệnh tương tác : “đồng ý”; “bắt đầu”, “kết thúc”, v.v.
- Biểu diễn các lệnh điều khiển thông qua cử chỉ tay. Việc gán một lệnh với một cử chỉ được gọi là xây dựng từ điển cử chỉ.
Tập các cử chỉ này sẽ được đưa qua một bộ đánh giá tiêu chí (tính trực quan, tính thoải mái) để chọn lọc ra một vài cử chỉ phù hợp. Các cử chỉ sau khi được lựa chọn này lại tiếp tục được đưa vào một bộ kiểm tra tính phân biệt và tính dễ nhận dạng của cử chỉ để cuối cùng đưa ra một cử chỉ phù hợp nhất với nhiệm vụ đề ra. Đây là một quy trình cho phép xây dựng bộ từ điển cử chỉ tối ưu trong các ứng dụng tương tác người - máy hoặc các ứng dụng xây dựng ngôn ngữ cử chỉ tay.
Quy trình được thể hiện thông qua hình vẽ :
Hình 3. 6 - Quy trình thiết kế cử chỉ
Một số tập cử chỉ tay đã tồn tại
Khâu đầu tiên trong bài toán nhận dạng cử chỉ là thu thập dữ liệu, cụ thể là dữ liệu ảnh cử chỉ để học trước khi nhận dạng. Phần này sẽ trình bày một số tập dữ liệu cử chỉ tay đã tồn tại, phân tích và đánh giá các ưu nhược điểm của từng hệ cơ sở dữ liệu, từ đó phân tích nhu cầu xây dựng một hệ cơ sở dữ liệu riêng cho bài toán nhận dạng cử chỉ áp dụng và hệ thống điều khiển chương trình máy tính. Bảng II tổng kết một hệ cơ sở dữ liệu cử chỉ đã tồn tại.
Bảng 3. 1 - Một số tập cơ sở dữ liệu cử chỉ đã tồn tại :
CSDL Đơn vị Địa chỉ chứa CSDL Mô tả tóm tắt CSDL
(1) Tae Kyun
Kim
Machine Intelligence Laboratory - Cambridge University
ftp://mi.eng.cam.ac.uk/pub/CamG esData
http://mi.eng.cam.ac.uk/~tkk22/ge s_db.htm
- 900 ảnh màu của 9 lớp cử chỉ
- Chụp trên nền xám đồng đều
(2,3) Sebatien Marcel et
al.
Viện nghiên cứu IDIAP - Thụy Sỹ
http://www-
prima.inrialpes.fr/FGnet/data/04- TwoHand/main.html
http://www-
prima.inrialpes.fr/FGnet/data/10- Gesture/gestures/main.html
3 hệ cơ sở dữ liệu:
1. CSDL các cử chỉ tạo bởi hai tay để thao tác đồ vật
2. CSDL các cử chỉ tĩnh 3. CSDL các cử chỉ động
(4) Jochen Triesch et
al.
Trường Đại học Frankfurt
http://www-
prima.inrialpes.fr/FGnet/data/10- Gesture/gestures/main.html
- 720 ảnh đen trắng, phông nền đơn giản + phức tạp - 10 tập cử chỉ
(5) Thomas Moeslun
d
Virtual Reality, Media
Technology, Trường Đại học AAlborg, Đan Mạch
http://www-
prima.inrialpes.fr/FGnet/data/12- MoeslundGesture/database.html
- 2060 ảnh đen trắng các cử chỉ tĩnh biểu diễn các ký hiệu trong bảng chữ cái
(6) Holte
Virtual Reality, Media
Technology, Trường Đại học AAlborg, Đan Mạch
http://www-
prima.inrialpes.fr/FGnet/data/03- Pointing/index.html
- CSDL về các cử chỉ để giao tiếp bằng tay
(7) Letessier
PRIMA INRIA Rhone-Alpes
http://www-
prima.inrialpes.fr/Pointing04/data- hand.html
- 8 videos màu thu nhận cử chỉ
"Pointing" từ 4 camera
(8) Nguyễn et
al.
Kyushu Institute of Technology
- 32 cử chỉ để xây dựng ngôn ngữ nói bằng tay
(9) Axenbeck
et al.
Freiburg University
- 4 cử chỉ động, 75 mẫu / cử chỉ
- 20fps, độ phân giải 640x480
Qua tìm hiểu, nghiên cứu và đánh giá ta thấy rằng mỗi tập cử chỉ có những ưu nhược điểm riêng được tóm tắt trong bảng sau :
Bảng 3. 2 - Ưu và nhược điểm của một số tập cử chỉ đã tồn tại :
CSDL Ưu điểm Nhược điểm Ứng dụng
(1)
Tae Kyun Kim
- Tập cơ sở dữ liệu gồm các ảnh màu, vì thế cho phép các giải thuật sử dụng tính chất của màu da để phát hiện bàn tay.
- Mô tả về hệ cơ sở dữ liệu tương đối rõ ràng.
- Nền của ảnh còn đơn giản (màu ghi xám đồng đều).
- 9 lớp cử chỉ đơn giản. Trong mọi trường hợp, các ngón tay và lòng bàn tay đều vẫn nằm trên một mặt phẳng. Các hình trạng phức tạp chưa được xem xét.
Thử nghiệm phương pháp phân tích tương quan tensor (Tensor Canonical
Correlation Analysis) cho bài toán phân lớp các hành động của người [Kim07].
(2,3) Sebatien Marcel et al.
- Các cử chỉ tĩnh cũng như một số các cử chỉ động được mô tả - Dữ liệu vẫn tồn tại, có thể tải về để thử nghiệm
- Ảnh đen trắng, không thích hợp với các giải thuật sử dụng thuộc tính về màu sắc
Thử nghiệm một thuật toán sử dụng
mạng nơron
[Marcel99] và Mô hình Markov ẩn [Marcel00] để học và phân lớp hình trạng của bàn tay trong ảnh.
(4) Jochen Triesch et al.
- Tập cử chỉ tương đối phức tạp hơn (các ngón tay và lòng bàn tay không nằm trên một mặt phẳng)
- Các ảnh chụp trên nền
- Ảnh đen trắng, vì thế không thể áp dụng các giải thuật sử dụng màu.
- Các tập cử chỉ để thử nghiệm mặc dù đã phức tạp hơn, trên phông nền phức tạp hơn, thì
Thử nghiệm một thuật toán đối sánh các đồ thị co giãn (elastic graph) để xuất bởi một nhóm
đơn giản (nền đen hoặc trắng) được dùng làm tập học. Các ảnh chụp trên nền phức tạp được dùng làm tập thử. Sự thu nhận ảnh của tay trên phông nền phức tạp cho phép thử nghiệm tính hiệu quả của thuật toán nhận dạng trong các điều kiện thu nhận khác nhau.
vẫn cùng kích thước, hướng quay, v.v. so với ảnh mẫu. Vì thế không thử nghiệm được hiệu quả bất biến của thuật toán đối với góc quay (rotation), sự thay đổi về thang đo (scale change) cũng như trong các điều kiện ánh sáng khác nhau (illumination change)
tác giả Jochen Triesch and Christoph von der Malsburg
[Triesch96].
(5) Thomas Moeslund
- Một tập đầy đủ các cử chỉ tương ứng với bảng chữ cái
- Có thể tải về để thử nghiệm
- Ảnh đen trắng, không cho phép sử dụng các giải thuật dựa trên tính chất màu sắc
Mục đích của CSDL là dùng để nhận dạng cử chỉ ứng dụng trong giao tiếp bằng tay [Birk97].
(6) Holte
- Kịch bản thu nhận được mô tả rất chi tiết, rõ ràng
- Ảnh mầu, có giá trị đối với các giải thuật sử dụng màu
- Tập cử chỉ tương đối đa dạng
- Các tập cử chỉ được thu nhận trên nền tương đối đơn giản - Trong mặt phẳng
- Góc quay, ánh sáng, sự thay đổi về kích thước.
PETs2003
(7) Letessier
- Ảnh mầu, có thông tin về grountruth - Sử dụng trong bài toán nhận dạng cử chỉ
"Pointing".
- Chỉ sử dụng để thử nghiệm một loại cử chỉ "Pointing"
PETs2004
(8)
Nguyễn et al.
- Ảnh đen trắng - Phông nền phức tạp
- Dữ liệu không mở
- Không có mô tả về CSDL
Sử dụng để nhận dạng các cử chỉ ngôn
ngư (ASL)
[Nguyen05]
(9) Axenbeck et al.
- Cử chỉ động - Dữ liệu không mở, không tải về được để thử nghiệm
Tương tác người Robot [Axenbeck08]
Qua bảng tổng kết, ta có một số nhận xét như sau : Một CSDL được xây dựng thường để thử nghiệm một loại thuật toán nào đó trong một ứng dụng cụ thể.
Mỗi CSDL không thỏa mãn tất cả các tính chất sau :
- Ảnh là ảnh màu để có thể sử dụng các thuật toán dựa trên việc phát hiện màu da, giảm thời gian tính toán trên tất cả các vùng ảnh
- Nền ảnh bàn tay thường còn đơn giản (nền đen trắng phân bố màu đồng đều) - Thông thường điều kiện thu nhận ảnh chỉ có thay đổi về ánh sáng, tuy nhiên góc
quay và khoảng cách chụp không hề thay đổi (camera tĩnh). Vì thế việc học một hình trạng với tập các mẫu học không bao quát hết các khả năng xảy ra trong thực tế, vì thế sẽ không thể nhận dạng tốt khi điều kiện chụp ảnh thay đổi - Tập cử chỉ còn tương đối đơn giản : đại đa số là các cử chỉ sử dụng trong giao
tiếp bằng tay hoặc thao tác một đối tượng nào đó. Vì thế khó có thể áp dụng một cách trực tiếp vào bài toán điều khiển robot cũng như điểu khiển máy tính.
Ứng dụng trong bài toán cụ thể, các tập cử chỉ phải được định nghĩa riêng biệt.
Để học và thử nghiệm thuật toán nhận dạng, chúng ta có thể sử dụng một số CSDL tồn tại. Tuy nhiên để gắn với ứng dụng cụ thể trong đề tài thì nhất thiết phải định nghĩa một tập cử chỉ riêng biệt và xây dựng một CSDL cử chỉ mới.
Tập cử chỉ đề xuất:
Để xây dựng tập cử chỉ tay có thể sử dụng trong nhiều ứng dụng tương tác khác nhau, cần phải xác định xem những cử chỉ nào thường được sử dụng nhiều nhất trong tương tác người - máy. Tập 8 cử chỉ sau do tác giả Đồng Văn Thái đề xuất trong một đề tài nghiên cứu về nhận dạng cử chỉ bàn tay. Do thời gian không nhiều để xây dựng đủ các tập cử chỉ đề xuất nên trong khuôn khổ đề tài tác giả chỉ xây dựng 5 tập dữ liệu cử chỉ. Cụ thể là các cử chỉ “Bắt đầu”, “Dừng lại”, “Sang trái”, “Sang phải” và cử chỉ “Lên trên”.
Bảng 3. 3 - Tập cử chỉ đề xuất: [2]
Tên cử chỉ Ảnh minh họa Mô tả
“Bắt đầu”
Cử chỉ “bắt đầu” được thực hiện khi người sử dụng muốn bắt đầu cho một công việc nào đấy: bật điện, bật điều hòa…
“Kết thúc”
Cử chỉ “kết thúc” được thực hiện khi người sử dụng muốn thiết bị dừng thực thi: tắt điện, tắt điều hòa…
“Đồng ý”
Cử chỉ “đồng ý” được thực hiện khi đồng ý một việc gì đó như xác nhận kết nốt thiết bị “yes” hay “ok”.
“Dừng lại”
Cử chỉ “Dừng lại” được thực hiện khi muốn tạm dừng thiết bi, như tạm dừng quay đổi hướng quạt…
“Sang trái”
Cử chỉ “sang trái” được sử dụng với chức năng tương ứng như đổi hướng quạt sang trái...
“Sang phải”
Cử chỉ “sang phải” được sử dụng với chức năng tương ứng như đổi hướng quạt sang phải....
“Lên trên” Cử chỉ “lên trên” được sử dụng với chức năng tương ứng như mở cửa lên trên…
“Xuống dưới”
Cử chỉ “xuống dưới” được sử dụng với chức năng tương ứng như đóng cửa xuống…
Xây dựng cơ sở dữ liệu và thử nghiệm
Cơ sở dữ liệu huấn luyện gồm hai phần chính: dữ liệu huấn luyện và dữ liệu thử nghiệm.
Dữ liệu huấn luyện : Là các dữ liệu dùng cho việc học của một hệ nhận dạng. Trong quá trình huấn luyện, bộ nhận dạng sẽ học từ các dữ liệu này và thông qua các đặc trưng để nhận ra đối tượng cần nhận dạng. Dữ liệu huấn luyện gồm 2 tập :
o Các ảnh chứa đối tượng cần nhận dạng (positive samples).
o Các ảnh không chứa đối tượng cần nhận dạng (negative samples).
Trong quá trình học, bộ nhận dạng sẽ cố gắng tìm các đặc trưng của các mẫu positive mà mẫu negative không có, từ đó rút ra được các đặc trưng của đối tượng cần nhận dạng. Khi đưa một mẫu mới vào nhận dạng, bộ nhận dạng sẽ áp các đặc trưng này lên mẫu, nếu thỏa mãn thì mẫu này là đối tượng cần nhận dạng, ngược lại thì không phải. Trong một hệ thống nhận dạng, số lượng ảnh positive càng lớn và được chuẩn hóa tốt thì mô hình nhận dạng thu được sẽ cho kết quả nhận dạng càng chính xác. Tức là chất lượng và số lượng tập dữ liệu huấn luyện có ảnh hưởng trực tiếp đến kết quả nhận dạng. Qua thực nghiệm cho thấy, nếu cơ sở dữ liệu huấn luyện lớn và các mẫu đối tượng đa dạng về góc quay, điều kiện chiếu sáng và các đối tượng được thu thập từ nhiều chủ thể khác nhau thì khi huấn luyện ta sẽ thu được một mô hình nhận dạng mang tính tổng quát cao. Khi tiến hành nhận dạng, nếu mô hình nhận dạng đủ tính tổng quát thì hệ thống nhận dạng sẽ cho kết quả tốt với tập đối tượng đa dạng.
Dữ liệu thử nghiệm : Là dữ liệu dùng cho việc kiểm tra tỉ lệ nhận dạng của một hệ nhận dạng. Tập dữ liệu này phải không trùng với tập dữ liệu huấn luyện. Tỉ lệ nhận dạng đúng các mẫu trong tập thử nghiệm nói lên tính hiệu quả của hệ nhận dạng, bởi vì các dữ liệu này không tham gia và quá trình huấn luyện của hệ nhận dạng, nếu hệ nhận dạng vẫn nhận dạng đúng chứng tỏ các đặc trưng mà được trích rút ra thật sự là các đặc trưng của đối tượng.
Xây dựng tập ảnh positive
Hệ thống cần xây dựng để nhận dạng được 8 cử chỉ nên cơ sở dữ liệu huấn luyện phải gồm 8 tập ảnh positive tương ứng với 8 cử chỉ đã được định nghĩa. Với mỗi cử chỉ, chụp hơn 1000 ảnh của 5 người khác nhau bằng webcam với độ phân giải 640x480 pixel trong nhiều điều kiện ánh sáng và phông nền khác nhau: dưới ánh sáng đèn neon, ánh sáng tự nhiên vào các thời điểm khác nhau v.v… sau đó loại trừ các mẫu không đạt chất lượng để còn lại 1000 mẫu.
Hình 3. 7 - Ảnh chụp bằng webcam cho các cử chỉ
Sau đó các ảnh chụp được sẽ được cắt bằng tiện ích ImageCliper được xây dựng trên C++ sao cho mẫu bàn tay sẽ nằm trong một hình chữ nhật dựa trên một tiêu điểm của từng cử chỉ để đảm bảo các tiêu điểm đó sẽ giúp phân biệt cử chỉ này với các cử chỉ còn lại. Các mẫu bàn tay cùng loại cử chỉ sẽ được chuẩn hóa về cùng kích thước. Ví dụ với cử chỉ “Sang trái” ta sẽ làm như sau :