1
LỜI CẢM ƠN
Em xin chân thành cảm ơn Trường Đại học Công nghệ Thông tin và Truyền
thông – Đại học Thái Nguyên đã tạo điều kiện cho em thực hiện luận văn này.
Em xin gửi lời cảm ơn sâu sắc tới thầy giáo TS Phạm Đức Long, trưởng
khoa Tự động hóa – Trường Đại học Công nghệ Thông tin và Truyền thông – Đại
học Thái Nguyên đã trực tiếp hướng dẫn em trong suốt quá trình thực hiện luận văn.
Em cũng xin gửi lời cảm ơn tới các thầy, cô, đã có những ý kiến đóng góp
bổ ích và đã tạo mọi điều kiện tốt nhất cho em trong suốt thời gian thực tập và thực
hiện luận văn. Xin cảm ơn các bạn học đồng khóa đã thường xuyên động viên, giúp
đỡ tôi trong quá trình học tập.
Cuối cùng, em xin gửi lời cảm ơn đến gia đình và bạn bè vì những tình cảm,
sự ủng hộ và động viên đã dành cho em trong suốt quá trình học tập cũng như thực
hiện luận văn này.
Thái Nguyên, tháng 09 năm 2015
Học viên
Lê Mạnh Linh
2
LỜI CAM ĐOAN
Em xin cam đoan về nội dung đồ án tốt nghiệp với tên đề tài “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” không sao
chép nội dung cơ bản từ các luận văn khác, hay các sản phẩm tương tự mà không
phải do em làm ra. Sản phẩm của luận văn là do chính bản thân em nghiên cứu và
xây dựng nên.
Nếu có gì sai em xin chịu mọi hình thức kỷ luật của Trường Đại học Công
1.4.1.
Đặc trưng các thành phần chính PCA:................................................ 11
1.4.2.
Đặc trưng HOG ................................................................................. 13
1.4.3.
Đặc trưng SIFT .................................................................................. 13
1.4.4.
Đặc trưng Haar like............................................................................ 17
CHƯƠNG II: CÁC KỸ THUẬT NHẬN DẠNG CỬ CHỈ BÀN TAY TRONG
VIDEO .................................................................................................................. 21
2.1.
Kỹ thuật sử dụng mạng nơron .................................................................. 21
2.2.
Kỹ thuật SVM (Suport Vector Machine) .................................................. 23
2.3.
Kỹ thuật sử dụng Boosting và mô hình Cascade ....................................... 29
qua camera kỹ thuật số ....................................................................................... 63
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ....................................... 65
TÀI LIỆU THAM KHẢO ..................................................................................... 67
5
DANH MỤC CÁC HÌNH VẼ
Hình 1. 1 - Sơ đồ tổng quát của bài toán nhận dạng cử chỉ....................................... 9
Hình 1. 2 - 10 vector đặc trưng có ý nghĩa và 5 vector không mang thông tin ........ 12
Hình 1. 3 - Ảnh sau khi tính gradient chia thành các cell ....................................... 13
Hình 1. 4 - Đặc trưng SIFT biểu diễn các điểm đặc biệt trong ảnh ......................... 14
Hình 1. 5 - Xác định điểm cực trị trong không gian tỉ lệ ........................................ 15
Hình 1. 6a,b,c - Các đặc trưng đường .................................................................... 18
Hình 1. 7 Đặc trưng Haar cho bàn tay.................................................................... 19
Hình 1. 8 - Cách tính tổng các điểm ảnh trong một hình chữ nhật bất kì ................ 19
Hình 2. 1 - Mô hình mạng nơron theo Rowley ...................................................... 22
Hình 2. 2 - Ánh xạ dữ liệu từ không gian gốc sang không gian đặc trưng cho phép
phân chia dữ liệu bởi siêu phẳng............................................................................ 24
Hình 2. 3 - Siêu phẳng tách với khoảng cách lề cực đại ......................................... 25
Hình 2. 4 - Support Vectors ................................................................................... 28
Hình 2. 5 - Minh họa Support Vectors ................................................................... 28
Hình 2. 6 - Minh họa Boosting .............................................................................. 30
Hình 2. 7 - Minh họa thuật toán AdaBoost............................................................. 31
Hình 2. 8 - Bộ phân loại mạnh H(x) xây dựng bằng AdaBoost .............................. 32
Hình 2. 9 - Bộ phân lớp CBC................................................................................. 33
Hình 2. 10 - Cách chọn bộ phân loại yếu của AdaBoost ........................................ 35
Hình 2. 11 - Các ngưỡng θ..................................................................................... 36
Hình 2. 12 - Mô hình Cascade ............................................................................... 37
7
CHƯƠNG I
TỔNG QUAN VỀ NHẬN DẠNG CỬ CHỈ
Nhận dạng là một ngành thuộc lĩnh vực học máy đã có lịch sử khá lâu, trong
thập kỷ 60 của thế kỷ XX, hầu hết vấn đề nhận dạng chỉ dừng lại ở việc nghiên cứu
lí thuyết thống kê. Về sau với sự phát triển mạnh mẽ của máy tính thì phần thực
nghiệm đã trở nên đơn giản hơn. Trong bối cảnh xã hội đang phát triển từ thời kỳ
công nghiệp sang hậu công nghiệp, đối với vấn đề tự động hóa thì việc thông tin
được nhận và xử lý một cách tự động là rất cần thiết. Khuynh hướng này làm cho
vấn đề nhận dạng mẫu trở nên rất quan trọng trong ứng dụng kỹ thuật và trong
nghiên cứu ngày nay. Nhận dạng mẫu tích hợp hầu hết vào các hệ thống máy móc
thông minh, có khả năng tự đưa ra quyết định để giải quyết vấn đề.
Nhận dạng nhằm mục đích phân loại dữ liệu dựa trên thông tin thống kê
được trích rút từ các mẫu có sẵn. Các mẫu cần phân loại thường được biểu diễn
thành các nhóm của các dữ liệu đo đạc hay quan sát được, mỗi nhóm là một điểm ở
trong một không gian đa chiều phù hợp. Không gian đa chiều này là không gian của
các đặc tính để dựa vào đó ta có thể phân loại.
Một hệ thống nhận dạng hoàn thiện gồm một thiết bị cảm nhận (sensor) để
thu thập các quan sát cần cho việc phân loại hay miêu tả; một cơ chế trích rút đặc
trưng (feature extraction) để tính toán các thông tin dưới dạng số hay dạng tượng
trưng (symbolic) từ các dữ liệu quan sát được; và một bộ phân loại nhằm thực hiện
công việc phân loại dựa vào các đặc tính đã được trích rút.
Việc phân loại thường dựa vào sự có sẵn của một tập các mẫu mà đã được
phân loại sẵn. Tập các mẫu này được gọi là tập huấn luyện và chiến lược học nhằm
phân loại mẫu vào một trong các lớp có sẵn được gọi là học có giám sát. Việc học
cũng có thể là không có giám sát, theo nghĩa là hệ thống không được cung cấp các
mẫu được đánh nhãn (phân loại) trước, mà nó phải tự đưa ra các lớp để phân loại
dựa vào tính ổn định trong thống kê của các mẫu.
Cử chỉ được chia thành hai loai : cử chỉ tĩnh và cử chỉ động. Một cử chỉ tĩnh
được mô tả bởi một hình trạng duy nhất của cơ thể hoặc một bộ phận của cơ thể.
Một cử chỉ động là một chuỗi các hình trạng liên tiếp theo một quỹ đạo nhất định.
Dựa vào các bộ phận của cơ thể, người ta phân ra các lớp cử chỉ sau :
Cử chỉ của tay và cánh tay : Trợ giúp nói bằng tay, ứng dụng trong giải
trí (trò chơi tương tác), điều khiển máy móc thông qua các cử chỉ.
9
Cử chỉ của đầu và gương mặt : Hướng nghiêng của đầu, hướng nhìn của
mắt, hướng của lông mày, độ mở của miệng được sử dụng trong các bài
toán nhận dạng cảm xúc của con người (ứng dụng trong các hệ thống giao
tiếp thông minh).
Cử chỉ của cơ thể : Theo dõi toàn bộ chuyển động của người, phân tích
chuyển động của người nhảy để sinh ra nhạc và chiếu sáng tương ứng,
nhận dạng phân tích dáng đi trong huấn luyện điền kinh, v.v..
Như vậy, cử chỉ của một con người rất phong phú và đa dạng. Có nhiều cách
thức để thể hiện một cử chỉ, và một cử chỉ có thể truyền đạt nhiều thông tin khác
nhau, đưa ra các đáp ứng khác nhau với môi trường.
1.3.
Mô hình bài toán nhận dạng cử chỉ:
Hình 1. 1 - Sơ đồ tổng quát của bài toán nhận dạng cử chỉ
Bài toán nhận dạng cử chỉ được chia làm các giai đoạn chính sau:
10
11
Ranh giới khái niệm giữa việc trích chọn đặc trưng và phân lớp ở góc độ nào
đó có phần không thực sự rõ ràng; một bộ trích chọn đặc trưng lý tưởng phải làm
cho công việc còn lại của bộ phân lớp trở nên dễ dàng hơn. Mục tiêu chung của bộ
trích chọn đặc trưng là dựa trên tín hiệu thu được để mô tả các đối tượng bằng các
giá trị xấp xỉ bằng nhau đối với các đối tượng thuộc cùng loại, và khác xa nhau nếu
khác loại. Hơn nữa để tiện xử lý thì số lượng đặc trưng càng ít càng tốt. Điều này
dẫn đến việc phải tìm ra các đặc trưng khác nhau và chúng không phụ thuộc vào
hoàn cảnh thu nhận tín hiệu về đối tượng. Đầu ra của công đoạn này được gọi là
vector đặc trưng của đối tượng, thông thường đây là một vector số thực.
Giai đoạn nhận dạng cử chỉ và phân loại cử chỉ
Giai đoạn này thực hiện việc phân tích từ dữ liệu đầu vào để 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 mô hình 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. Bộ phân loại sẽ nhận vào một
ảnh và cho biết trong ảnh đó có chứa những cử chỉ nào (cho biết vị trí của vùng ảnh
tương ứng với các cử chỉ).
1.4.
Một số đặc trưng sử dụng biểu diễn cử chỉ bàn tay:
1.4.1. Đặc trưng các thành phần chính PCA:
Phương pháp đơn giản nhất để phát hiện đối tượng là sử dụng cường độ xám
hoặc màu của điểm ảnh để biểu diễn đối tượng. Phương pháp này không đòi hỏi bất
kỳ một khâu trích chọn đặc trưng nào cả. Tuy nhiên với phương pháp này, một ảnh
× ℎ sẽ được
quét trên tất cả các pixel trong ảnh. Mỗi ảnh cửa sổ sẽ được ánh xạ vào không gian
đặc trưng có số chiều N, và được biểu diễn bởi một vector N thành phần. Phương
pháp sử dụng lân cận gần nhất thường được sử dụng để xác định xem vector này có
gần với thực thể của một đối tượng thuộc lớp đã được học hay không. Phương pháp
biểu diễn này đơn giản nhưng đặc trưng sử dụng là toàn bộ ảnh đối tượng, do đó sẽ
không hiệu quả khi các đối tượng bị che khuất hoặc biến đổi về hình dạng. PCA
thích hợp cho việc nhận dạng các đối tượng này không bị thay đổi lớn.
13
1.4.2. Đặc trưng HOG
HOG viết là tắt của Histogram Orientation Gradient, ý 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
[3]. 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à
cell, mỗi cell này tích lũy histogram 1 chiều cục bộ của hướng gradient hoặc định
hướng biên trên các điểm ảnh của các cell. Các cell nằm cạnh nhau được gộp lại
thành một khối gọi là block, các block 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.
Hình 1. 3 - Ảnh sau khi tính gradient chia thành các cell
1.4.3. Đặc trưng SIFT
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 [2] đề xuất. Đối với bất kỳ một đối tượng nào
trong ảnh sẽ có rất nhiều trưng để mô tả, tuy nhiên David G.Lowe chỉ ra rằng 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. Mô tả này có thể được
15
Hình 1. 5 - Xác định điểm cực trị trong không gian tỉ lệ
Không gian tỷ lệ được xác định bởi hàm sau :
( , , )= ( , , )∗ ( , )
Trong đó ∗ là toán tử tích chập;
( , , ) là hàm Gause biến đổi tỉ lệ và
( , ) là ảnh đầu ra. 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ệ. Vi phân của hàm Gause là một trong
các kỹ thuật đó, xác định cực trị của không gian tỉ lệ
( , , ) bằng cách tính sự
khác nhau giữa 2 ảnh mà tỉ lệ gấp nhau k lần ( , , ) được đưa ra bởi công thức :
( , , )= ( , ,
Để xác định cực đại và cực tiểu của
)− ( , , )
( , , ) mỗi điểm được so sánh với 8
điểm lân cận của nó ở cùng một tỉ lệ. Nếu giá trị này là nhỏ nhất hoặc lớn nhất trong
tất cả các điểm thì điểm này là một cực trị.
Xác định vị trí của những điểm quan trọng (key point) :
Giai đoạn này loại trừ đi một số điểm trong danh sách các điểm có được
+ Tính toán sự định hướng,
( , ) = tan
:
( , + 1) − ( , − 1)
( + 1, ) − ( − 1, )
+ Xây dựng một histogram định hướng từ những hướng gradient của
những điểm điểm quan trọng trong giai đoạn 1.
+ Định vị đỉnh lớn nhất trong histogram, sử dụng đỉnh này và bất kỳ
một đỉnh cục bộ nào khác trong 80% độ cao của đỉnh để tạo một điểm
với sự định hướng đó.
17
+ Một số điểm sẽ được chỉ định bởi nhiều sự định hướng.
+ Đặt một parabol đi qua 3 giá trị histogram gần nhất với đỉnh để nội
suy vị trí các đỉnh.
Mô tả các điểm quan trọng (Keypoint Descriptor) :
Dữ liệu về gradient cục bộ được sử dụng ở trên cũng được dùng để tạo
nên sự mô tả của các điểm đặc biệt. Thông tin về gradient được quay để các
đường hướng lên với sự định hướng của điểm đặc biệt và sau đó được định
lượng bởi toán tử Gause với hệ số biến đổi 1.5 * tỉ lệ điểm đặc biệt. Dữ liệu này
sau đó được sử dụng để tạo một tập hợp của histogram trên một cửa sổ trung tâm
trên điểm đặc biệt.
Hình 1. 7 Đặc trưng Haar cho bàn tay
Tính toán nhanh các đặc trưng Haar like :
Trong quá trình huấn luyện, số lượng xử lý trên các Haar Feature là rất lớn,
việc tính tổng các điểm ảnh cho bởi từng feature làm cho thời gian xử lý tăng đáng
kể. Để khắc phục điều này, Viola và Jones đã đưa ra khái niệm Integral Image [4]
để tính toán nhanh cho các feature cơ bản.
Hình 1. 8 - Cách tính tổng các điểm ảnh trong một hình chữ nhật bất kì
20
Với định nghĩa integral image tại điểm ( , ) là :
( , )=
( ,
)
,
Tổng các giá trị pixel trong vùng “D” được tính như sau :
= ;
=
−
−
+
−
−
21
CHƯƠNG II
CÁC KỸ THUẬT NHẬN DẠNG CỬ CHỈ BÀN TAY TRONG VIDEO
2.1.
Kỹ thuật sử dụng mạng nơron
Mạng nơron nhân tạo được thiết kế để mô hình một số tính chất của mạng
nơron sinh học. Tuy nhiên, khác với các mô hình nhận thức, phần lớn các ứng dụng
lại có bản chất kỹ thuật. Mạng nơron nhân tạo (ANN) là máy mô phỏng cách bộ
não hoạt động thực hiện các nhiệm vụ của nó. Một mạng nơron là bộ xử lý song
song phân tán lớn, nó giống bộ não người về hai mặt :
-
Tri thức được nắm bắt bởi mạng nơron thông qua quá trình học.
-
Độ lớn của trọng số kết nối nơron đóng vai trò khớp nối cất giữ thông tin.
Kiến trúc của mạng nơron nhân tạo lấy tư tưởng chính của mạng nơron sinh
học đó là sự kết nối của các nơron. Tuy nhiên, mạng nơron nhân tạo có kiến trúc
của các mạng nơron là các vùng với kích thước 20 × 20 pixel đã qua tiền xử
lí của ảnh vào, và đầu ra là một giá trị trong khoảng (-1, 1).
Một module thực hiện việc đưa ra quyết định cuối cùng. Kết hợp các phát
hiện từ các mạng nơron từ đó sử dụng thêm phép toán logic và kĩ thuật bầu
cử để tăng hiệu quả.
Hình 2. 1 - Mô hình mạng nơron theo Rowley
23
Đưa vào một mẫu cần kiểm tra, kết quả đầu ra của mạng huấn luyện sẽ
gần -1 nếu không phải mẫu khuôn mặt và kết quả gần 1 nếu là mẫu khuôn mặt.
Và để phát hiện khuôn mặt trong ảnh cần phải áp dụng trên toàn bộ ảnh. Đối với
khuôn mặt kích thước lớn hơn 20x20, lặp lại việc lấy mẫu ở các tỉ lệ khác nhau,
các mẫu này chia thành các phần nhỏ: 4 mẫu10x10, 16 mẫu 5x5, 6 mẫu 6x6 và
áp dụng mạng nơron. Thực tế ông dùng khoảng 1500 mẫu ảnh với các tỉ lệ,
hướng, vị trí và mức sáng khác nhau để huấn luyện mạng. Với mỗi ảnh huấn
luyện, gán nhãn cho mắt, đỉnh mũi, góc cạnh và tâm miệng để có thể chuẩn hóa
về cùng tỉ lệ, vị trí và hướng.
Một giới hạn trong phương pháp của Rowley là chỉ có thể xác định khuôn
mặt chụp thẳng và tựa thẳng (nghiêng đầu). Sau đó Rowley cải tiến để có thể xác
định khuôn mặt bị xoay bằng mạng định hướng (Router Network). Các tác giả sau
này phát triển dựa trên mạng nơron kết hợp các hướng tiếp cận khác nhau cũng cho
kết quả tốt hơn. Việc chọn kích thước mẫu học được cải tiến sao cho phù hợp với
cấu trúc mẫu đưa vào, các bước tiền xử lí tốt hơn …
2.2.
Kỹ thuật SVM (Suport Vector Machine)
SVM là phương pháp phân loại tự động tương đối mới do Vapnik [6] đưa ra
Ban đầu, SVM được thiết kế cho bài toán phân lớp nhị phân, hàm mục tiêu
của bài toán SVM phân lớp nhị phân có thể được phát biểu như sau :
( )=
. Φ( ) +
(1)
Trong đó :
- Véc tơ đầu vào
-
∈
.
là véc tơ chuẩn của siêu phẳng phân cách trong không gian đặc
trưng được sinh ra từ ánh xạ : Φ( ):
→
( >
, Φ( ) có thể
tuyến tính hoặc phi tuyến).
-
là độ lệch so với gốc tọa độ.
.
=‖
‖
Để nới lỏng điều kiện phân lớp, thêm vào một số yếu tố cân bằng và việc
huấn luyện SVM chính là giải bài toán tối ưu có ràng buộc :
min
,
1
.
2
+
(2)
Sao cho :
( . Φ( ) + ) ≥ 1 −
≥ 0, ∀ , trong đó C là tham số nới lỏng điều kiện phân lớp.