Tải bản đầy đủ

Nhận dạng cử chỉ tay động sử dụng mạng neuron tích chập

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỂN THÔNG
──────── * ───────

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

NHẬN DẠNG CỬ CHỈ TAY ĐỘNG SỬ DỤNG
MẠNG NEURON TÍCH CHẬP

Sinh viên thực hiện : Đặng Mạnh Trường
Lớp KSCLC HTTT&TT – K58
Giáo viên hướng dẫn: PGS.TS. Trần Thị Thanh Hải

HÀ NỘI 6-2018
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

1



PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Đặng Mạnh Trường
Điện thoại liên lạc 0962387593
Email: dangmanhtruong@gmail.com
Lớp: KSCLC Hệ thống thông tin và truyền thông K58
Hệ đào tạo: KSCLC-TN-TT
Đồ án tốt nghiệp được thực hiện tại:
Viện nghiên cứu quốc tế MICA – Trường Đại học Bách Khoa Hà Nội
Thời gian làm ĐATN: Từ ngày 19/1/2018 đến 02/06/2018
2. Mục đích nội dung của ĐATN
Nghiên cứu và thử nghiệm một kỹ thuật học sâu cho bài toán nhận dạng cử chỉ động của
bàn tay người đa góc nhìn
3. Các nhiệm vụ cụ thể của ĐATN
- Tìm hiểu bài toán nhận dạng cử chỉ động của bàn tay người từ video và các hướng giải
quyết.
- Tìm hiểu và thử nghiệm kỹ thuật mạng neuron tích chập 3 chiều.
- Thử nghiệm kết hợp nhiều nguồn thông tin để nâng cao độ chính xác cho kỹ thuật.
- Đánh giá độ chính xác, ưu nhược điểm của kỹ thuật nghiên cứu trên CSDL đa góc nhìn
4. Lời cam đoan của sinh viên:
Tôi – Đặng Mạnh Trường - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới
sự hướng dẫn của PGS. TS. Trần Thị Thanh Hải.
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ
công trình nào khác.
Hà Nội, ngày tháng năm
Tác giả ĐATN

Đặng Mạnh Trường
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo
vệ:
Hà Nội, ngày tháng năm
Giáo viên hướng dẫn

PGS.TS. Trần Thị Thanh Hải
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

2



TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
ĐATN này tập trung giải quyết bài toán nhận dạng các cử chỉ động của tay người dưới các
góc nhìn khác nhau. Đây là một bài toán có tính ứng dụng thực tiễn cao trong các hệ thống
điều khiển thông minh. Có hai hướng tiếp cận chính để biểu diễn một hoạt động nói chung
và cử chỉ tay động nói riêng. Hướng tiếp cận thứ nhất biểu diễn cử chỉ dựa trên các đặc
trưng được thiết kế bằng tay. Hướng tiếp cận này thường phù hợp với các bài toán có tập
dữ liệu nhỏ và đặc thù. Hướng tiếp cận thứ hai sử dụng kỹ thuật học sâu tiên tiến để tính
toán tự động các đặc trưng từ dữ liệu thô. Hướng tiếp cận này đã đạt được nhiều kết quả ấn
tượng trên hầu hết các bài toán về thị giác máy tính như nhận dạng ảnh và video. Vì vậy,
trong ĐATN này, em tiếp cận bài toán nhận dạng cử chỉ động của tay theo kỹ thuật học
sâu. Có nhiều kiến trúc học sâu đã đạt kết quả tốt cho việc giải bài toán nhận dạng hoạt
động trong thời gian gần đây. Trong số các kỹ thuật đó, em tìm hiểu mạng neuron tích
chập 3 chiều (C3D – 3D convolutional neural network) được trình bày trong tài liệu tham
khảo [1]. Đây là một kỹ thuật cho phép trích chọn các đặc trưng một cách cô đọng phù hợp
với dữ liệu là luồng video (có tính đến yếu tố thời gian). Các đánh giá thực nghiệm cho
thấy kỹ thuật này cho kết quả tốt trên một số CSDL dùng chung về hoạt động của cộng
đồng nghiên cứu như UCF101, HMDB51. Trong ĐATN này, em sẽ nghiên cứu kỹ thuật
này và đánh giá tính hiệu quả của nó trên một loại dữ liệu về cử chỉ động của bàn tay
người. ĐATN của em sẽ trả lời hai câu hỏi đặt ra: (1) Kỹ thuật C3D vốn được thử nghiệm
trên các dữ liệu về hoạt động nói chung. Liệu C3D có phù hợp cho việc nhận dạng các cử
chỉ tay người trong đó đối tượng động duy nhất trong cảnh là bàn tay người có độ phân
giải không gian tương đối nhỏ trong ảnh? (2) Kỹ thuật C3D đã được đánh giá trên các
CSDL các hoạt động hỗn tạp. Chưa có một nghiên cứu chuyên sâu liệu C3D có hiệu quả
khi các góc nhìn thay đổi ? Ngoài ra để nâng cao hiệu năng của C3D, em cũng đã nghiên
cứu và thực hiện một số cải tiến trong cách lấy mẫu các frames và đánh giá hiệu quả của
C3D khi có thêm luồng dữ liệu quang học (optical flow). Các thực nghiệm được thực hiện
trên bộ dữ liệu gồm các video của 5 đối tượng thực hiện 5 loại cử chỉ dưới 3 góc nhìn khác
nhau tại Viện MICA. Kết quả cho thấy phương pháp đề xuất khá ổn định khi sự thay đổi
góc nhìn là nhỏ. Kết quả này có thể cải tiến thêm nếu tích hợp những đặc trưng bất biến
với góc nhìn vào quá trình học.

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

3


ABSTRACT OF THESIS
In this report, I focus on solving the hand gesture recognition problem under
different viewpoints. This problem plays an important role in intelligent control
systems . There are two main approaches to modelling an action and particularly a
hand gesture. The first approach represents gestures using hand-crafted features. This
is usually preferred on small datasets with some specific characteristics. The second
approach applies deep learning methods to automaticlly extract relevant features
directly from raw data. Recently this line of research has achieved very impressive
results on most computer vision problems on images and video. Therefore, in this
thesis, the problem of hand gesture recognition is approached from a deep learning
perspective. In recent years there has been many sucessful deep architectures in
action recognition. Amongst them, I focus on 3D convolutional neural network – C3D,
as described in [1]. This method extracts compact and simple video descriptors,
which are suitable for video streams. Experimental results show that this architecture
gives good results on a number of public datasets on action recognition such as
UCF101 and HMDB51. In this thesis, I focus on applying this method and evaluate its
effectiveness on a type of dataset on hand gesture. This thesis answers two questions:
(1) Would C3D, a deep architecture tested on general action recogntion dataset, also
be suitable for hand gesture recognition on datasets in which the only moving object is
the hand, with a relatively low spatial resolution? (2) The original C3D network was
trained on varying viewpoints. What are the effects of different viewpoints on hand
gesture recognition using C3D? In order to further increase C3D recognition results,
I have also researched and applied some novel methods on frame sampling in video
and evaluated C3D results when RGB frames are used in conjuction with optical flow
features. The tests were carried out on a dataset performed by 5 subjects doing 5
different actions under 3 different viewpoints at MICA institute. The results show that
the proposed method is relatively stable under small changes in viewpoint. This can be
further improved if view-invariant features are incorporated into the learning process.
.

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

4


Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

5


LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành đến cô Trần Thị Thanh Hải vì đã hướng
dẫn ân cần, tận tình, và kiên nhẫn với em và tạo động lực cho em trong khoảng thời gian
thực hiện đồ án tốt nghiệp này.
Em cũng xin chân thành cảm ơn Viện Nghiên cứu Quốc tế MICA đã tạo cho em một
môi trường thuận lợi để học tập và nghiên cứu.
Em cũng xin gửi lời cảm ơn đến tất cả các thầy cô Viện Công nghệ thông tin nói riêng
và các thầy cô Trường Đại học Bách khoa Hà Nội nói chung trong suốt thời gian học trên
giảng đường đã truyền đạt cho em những kiến thức cần thiết.
Em cũng xin gửi lời cảm ơn đến tất cả các bạn cùng lớp đã đồng hành cùng em trong
suốt thời gian học và làm việc, đã giúp đỡ động viên em rất nhiều.
Em xin gửi lời cảm ơn đến gia đình đã luôn quan tâm, ủng hộ hết lòng về vật chất và
tinh thần trong suốt thời gian qua.
Do thời gian và kiến thức có hạn nên không tránh khỏi những thiếu sót nhất định. Em
rất mong nhận được sự đóng góp quý báu của thầy cô và các bạn.
Cuối cùng, em xin gửi lời chúc sức khỏe, hạnh phúc tới thầy cô, gia đình và bạn bè.
Hà Nội, ngày .... tháng .... năm 2018
Sinh viên

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

6


MỤC LỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP .............................................................. 2
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP ................................................................... 3
ABSTRACT OF THESIS ...................................................................................................... 4
LỜI CẢM ƠN ........................................................................................................................ 6
MỤC LỤC ............................................................................................................................. 7
DANH MỤC HÌNH ẢNH ................................................................................................... 10
DANH MỤC BẢNG ........................................................................................................... 12
DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ ............................................................... 13
MỞ ĐẦU ............................................................................................................................. 14
CHƯƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG CỬ CHỈ TAY NGƯỜI VÀ VẤN ĐỀ
ĐẶT RA VỚI ĐỒ ÁN ......................................................................................................... 16
1.1.

Một số khái niệm ................................................................................................... 16

1.2.

Một số nghiên cứu liên quan về nhận dạng cử chỉ tay người................................ 17

1.2.1.

Hướng tiếp cận biểu diễn hoạt động dựa trên đặc trưng trích chọn được thiết

kế bằng tay (hand-crafted features) ............................................................................. 17
1.2.2.

Hướng tiếp cận biểu diễn hoạt động dựa trên kỹ thuật học sâu ..................... 18

1.2.3.

Nhận xét chung .............................................................................................. 19

1.3.

Mục tiêu của đồ án ................................................................................................ 20

CHƯƠNG 2: MẠNG NƠ RON TÍCH CHẬP CHO BÀI TOÁN NHẬN DẠNG CỬ CHỈ
TAY NGƯỜI ....................................................................................................................... 21
2.1. Giới thiệu chung về mạng nơ- ron tích chập ............................................................ 21
2.1.1. Mạng nơ-ron nhân tạo (artificial neural network) ............................................. 21
2.1.1.1 Cấu trúc mạng nơ-ron .................................................................................. 21
2.1.1.2 Huấn luyện mạng nơ-ron ............................................................................. 23
2.1.2. Mạng nơ-ron tích chập ...................................................................................... 24
2.1.2.1 Cấu trúc: ....................................................................................................... 26
2.1.2.2 Học chuyển tiếp (transfer learning): ............................................................ 28
2.1.2.3 Áp dụng cho bài toán nhận dạng hoạt động của video: ............................... 29
2.1.3. Một số kiến trúc của CNN cho bài toán nhận dạng cử chỉ ............................... 29
2.1.3.1 Nhận dạng cử chỉ nói chung............................................................................ 29
2.1.3.2 Nhận dạng cử chỉ tay động .......................................................................... 31
2.1.3.3 Một số nhận xét............................................................................................ 33
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

7


2.2. Mạng nơ ron tích chập 3 chiều ................................................................................. 34
CHƯƠNG 3: NHẬN DẠNG CỬ CHỈ TAY NGƯỜI DƯỚI CÁC GÓC NHÌN KHÁC
NHAU TỪ ẢNH RGB VÀ LUỒNG QUANG HỌC SỬ DỤNG MẠNG C3D VÀ BỘ
PHÂN LỚP SVM ................................................................................................................ 36
3.1. Mô hình đề xuất nghiên cứu ..................................................................................... 36
3.1.1 Mô hình kiến trúc mạng C3D nguyên bản trên luồng RGB [1] ........................ 36
3.1.2 Mô hình kiến trúc mạng C3D hai luồng (RGB+OpticalFlow) [21] ................... 36
3.1.3 Xử lý vấn đề lấy mẫu trên video ........................................................................ 40
3.2

Triển khai mô đun nhân dạng hoạt động dưới các góc nhìn khác nhau ................ 42

3.2.1

Framework tổng quát ..................................................................................... 42

3.2.2

Môi trường lập trình và thư viện sử dụng để triển khai mô đun nhận dạng .. 44

3.2.3

Cài đặt và tích hợp mô đun nhận dạng hoạt động.......................................... 45

3.2.4

Dữ liệu thử nghiệm và phương pháp đánh giá ............................................... 51

3.3 Kết quả thử nghiệm ................................................................................................... 54
3.3.1 Với mô hình kiến trúc mạng C3D nguyên bản trên dữ liệu video gốc .............. 55
3.3.2 Với mô hình kiến trúc mạng C3D nguyên bản thử nghiệm trên dữ liệu trên
video đã phân vùng bàn tay ......................................................................................... 57
3.3.3 Với mô hình kiến trúc mạng C3D sử dụng kỹ thuật chia thành các segment 16
đoạn với việc lấy mẫu ngẫu nhiên. .............................................................................. 58
3.3.4 Với mô hình kiến trúc mạng C3D sử dụng kỹ thuật chọn ra 16 frame mấu chốt
[24] .............................................................................................................................. 59
3.3.5 Với mô hình kiến trúc mạng C3D với OF (optical flow) trong các chiến thuật
early fusion và late fusion ........................................................................................... 59
3.3.5.1 Kết quả với luồng quang học sử dụng kiến trúc mạng đã được khởi tạo trên
tập Sport1m .............................................................................................................. 59
3.3.5.2 Kết quả với luồng quang học sử dụng kiến trúc mạng đã được khởi tạo trên
ảnh quang học của tập UCF101 ............................................................................... 60
3.3.5.3 Kết quả sử dụng kiến trúc Twostream theo [21] (early fusion) .................. 60
3.3.5.4 Kết quả sử dụng kiến trúc Twostream theo [21] (late fusion) .................... 61
3.3.5.5 Kết quả sử dụng kiến trúc Twostream với cả hai luồng đều được huấn luyện
trước trên ảnh RGB của tập Sport1m (early fusion): ............................................... 61
3.3.5.6 Kết quả sử dụng kiến trúc Twostream với cả hai luồng đều được huấn luyện
trước trên ảnh RGB của tập Sport1m (late fusion): ................................................. 61
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

8


CHƯƠNG 4: KẾT LUẬN ................................................................................................... 64
4.1.

Kết quả đạt được ................................................................................................... 64

4.2.

Những điểm còn hạn chế ....................................................................................... 64

4.3.

Hướng phát triển ................................................................................................... 64

TÀI LIỆU THAM KHẢO ................................................................................................... 66
PHỤ LỤC ............................................................................................................................ 68

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

9


DANH MỤC HÌNH ẢNH
Hình 1 : Các bước xử lý trong hệ thống nhận dạng sử dụng đặc trưng trích chọn được thiết
kế bằng tay ........................................................................................................................... 17
Hình 2 : Minh họa mạng nơ-ron của người (từ Rob Fergus) ............................................... 21
Hình 3 : Chữ số 6 được viết tay. Bên trái là ảnh gốc, ở giữa là ảnh được phóng to, bên phải
là ảnh gốc đã được quay một góc 30 độ. Tham khảo của [13] ............................................ 25
Hình 4 : Cấu trúc của một CNN thông thường. Bên trái là ảnh đầu vào, ở giữa là tầng tích
chập (convolutional layer), bên phải là tầng lấy mẫu con (subsampling layer). Tham khảo
của [13] ............................................................................... Error! Bookmark not defined.
Hình 5 : Hàm sigmoid và hàm ReLU .................................. Error! Bookmark not defined.
Hình 6 : Kiến trúc CNN trong [15] ..................................................................................... 27
Hình 7 : Kiến trúc của [7] ................................................................................................... 30
Hình 8 : Kiến trúc của mạng 2 luồng trong [8] .................................................................... 30
Hình 9 : Kiến trúc HRN-LRN trong [10] ........................................................................... 32
Hình 10 : Kiến trúc của [11] ............................................................................................... 33
Hình 11 : Minh họa phép toán tích chập 3 chiều [1] .......................................................... 34
Hình 12 : Kiến trúc mạng C3D [1] ..................................................................................... 35
Hình 13 : Kiến trúc mạng C3D [1] ..................................................................................... 36
Hình 14 : Tính toán Optical flow sử dụng phương pháp trong [20]. (a) (b) 2 frame liên tiếp
trong một video (c) Thành phần luồng quang học theo phương ngang (d) Thành phần luồng
quang học theo phương đứng............................................................................................... 38
Hình 15 : Kiến trúc kết hợp thông tin ảnh RGB và ảnh luồng quang học [21] .................. 40
Hình 16 : a) 8 frame đầu của 1 video. b) 8 frame được lấy ngẫu nhiên từ cả video. Ta thấy
trường hợp b) chỉ sử dụng 8 frame ngẫu nhiên nhưng cũng miêu tả đủ toàn bộ chuyển động
trong video. .......................................................................................................................... 41
Hình 17 : Framework tổng quát của nhận dạng cử chỉ tay động sử dụng C3D ............Error!
Bookmark not defined.
Hình 18 : Sơ đồ học chuyển tiếp (transfer learning) sử dụng mạng C3D ........................... 49
Hình 19 : Sơ đồ trích xuất đặc trưng sử dụng mạng C3D ................................................... 51
Hình 20 : 1 số cử chỉ có tính chất chu kỳ đóng trong nghiên cứu của [4] .......................... 52
Hình 21 : Vị trí của các Kinect đối với đối tượng ............................................................... 52
Hình 22 : Hành động 1_ON_OFF, góc nhìn Kinect 5, đối tượng Hùng .............................. 53
Hình 23 : Hành động 2_UP, góc nhìn Kinect 1, đối tượng Bình ......................................... 53
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

10


Hình 24 : Hành động 3_DOWN, góc nhìn Kinect 1, đối tượng Giang ............................... 53
Hình 25 : Hành động 4_LEFT, góc nhìn Kinect 3, đối tượng Tân ...................................... 54
Hình 26 : Hành động 5_RIGHT, góc nhìn Kinect 3, đối tượng Thuần ............................... 54
Hình 27 : Góc nhìn Kinect 1, đối tượng Bình, thực hiện hành động 5_RIGHT (1 số frame
đầu tiên) ............................................................................................................................... 56
Hình 28 : So sánh 2 góc nhìn Kinect 1 (nghiêng 90 độ) và Kinect 3 (nghiêng 45 độ) với
hành động 2_UP. Ta thấy rằng do Kinect 1 được đặt khá gần đối tượng nên bàn tay biến
mất khỏi video khi giơ lên. .................................................................................................. 56
Hình 29 : Góc nhìn Kinect 5, đối tượng Hùng, thực hiện hành động 3_DOWN (1 số frame
đầu tiên) ............................................................................................................................... 57
Hình 30 : Ảnh gốc và vùng mặt nạ bàn tay để từ đó tách ra vùng bàn tay. ......................... 57
Hình 31 : Kiến trúc của hai luồng sử dụng trong chiến thuật Twostream với cả hai luồng
đều được huấn luyện trước trên ảnh RGB của tập Sport1m ................................................ 61

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

11


DANH MỤC BẢNG
Bảng 1: Kết quả sử dụng mạng C3D huấn luyện trước trên tập dữ liệu Sport1m ............... 55
Bảng 2 : Kết quả khi thực hiện theo phương pháp của [18] Error! Bookmark not defined.
Bảng 3: Kết quả với luồng quang học khi sử dụng kiến trúc mạng C3D đã được khởi tạo
trên ảnh RGB của tập Sport1m ............................................................................................ 59
Bảng 4: Kết quả với luồng quang học khi sử dụng kiến trúc mạng C3D đã được khởi tạo
trên ảnh luồng quang học của tập UCF101.......................... Error! Bookmark not defined.

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

12


DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Từ viết tắt, Từ đầy đủ

Ý nghĩa

thuật ngữ
CNN

Convolutional Neural Networks

RCNN

Region-based

Mạng nơ ron tích chập

Convolutional Mạng nơ ron tích chập trên vùng

Neural Networks
PCNN

Pose-based Convolutional Neural Mạng nơ ron tích chập dựa trên hình
trạng

Networks
C3D

3D

Convolutional

Neural Mạng nơ ron tích chập 3 chiều

Networks
STIP

Spatio-temporal interest points

Điểm đặc trưng không gian-thời gian

GPU

Graphical Processing Unit

Bộ xử lý đồ họa

SVM

Support Vector Machine

Máy vectơ hỗ trợ

ReLU

Rectified Linear Unit

Đơn vị tuyến tính chỉnh lưu

FC

Fully-connected

(Tầng) kết nối đầy đủ

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

13


MỞ ĐẦU
Bài toán nhận dạng hoạt động người đã thu hút sự quan tâm nghiên cứu của các nhà
khoa học trong hơn 3 thập kỷ gần đây. Đây vẫn là một lĩnh vực nghiên cứu đầy tiềm năng
bởi nó mở ra nhiều ứng dụng trong theo dõi giám sát, tương tác người máy hoặc giải trí.
Trong đó, vấn đề nhận dạng cử chỉ tay người đóng một vai trò đặc biệt quan trọng trong
việc xây dựng những ứng dụng thực tiễn giúp ích cho đời sống con người (ví dụ như sử
dụng cử chỉ tay để điều khiển thiết bị gia dụng). Tuy nhiên cho đến nay, các nghiên cứu về
nhận dạng cử chỉ tay chưa chú trọng tới việc nghiên cứu ảnh hưởng của góc nhìn tới việc
nhận dạng. Đây là một vấn đề rất quan trọng, vì một phương pháp tốt trên một góc nhìn
này chưa chắc đã tốt trên một góc nhìn khác. Do vậy, vấn đề cấp thiết là thiết kế một mô
hình có thể xử lý tốt ảnh hưởng của góc nhìn tới việc nhận dạng cử chỉ tay.
Với ý nghĩa và tính cấp thiết của việc phát hiện và nhận dạng tự động các cử chỉ tay
của con người, trong ĐATN này em hướng đến nghiên cứu và phát triển một phương pháp
nhận dạng cử chỉ tay của người từ dữ liệu video dưới nhiều góc nhìn khác nhau. Mặc dù có
rất nhiều các phương pháp khác nhau đã được đề xuất cho bài toán nhận dạng cử chỉ tay
của người dựa trên tính chất của đặc trưng biểu diễn hoạt động hay giải thuật phân lớp sử
dụng, trong khuôn khổ của ĐATN này, em tập trung nghiên cứu một phương pháp học sâu
để giải quyết bài toán nhận dạng cử chỉ bàn tay người từ video dưới các góc nhìn khác
nhau. Các kỹ thuật học sâu đã được chứng minh là rất hiệu quả trong các bài toán nhận
dạng, phân lớp đối tượng trong ảnh tĩnh. Thời gian gần đây, các kỹ thuật này cũng đang
dần được nghiên cứu cho bài toán nhận dạng hoạt động từ video. Mỗi kiến trúc mạng cũng
như cách thiết kế dữ liệu sẽ cho hiệu quả khác nhau trên cùng CSDL dùng chung. Trong
ĐATN này, em nghiên cứu tìm hiểu kỹ thuật C3D (convolutional 3D) được đề xuất bởi Du
Tran và các đồng nghiệp được trình bày trong tài liệu tham khảo [1]. Trong ĐATN này,
em sẽ nghiên cứu kỹ thuật này và đánh giá tính hiệu quả của nó trên một loại dữ liệu về cử
chỉ động của bàn tay người. ĐATN của em sẽ trả lời hai câu hỏi đặt ra: (1) Kỹ thuật C3D
vốn được thử nghiệm trên các dữ liệu về hoạt động nói chung. Liệu C3D có phù hợp cho
việc nhận dạng các cử chỉ tay người trong đó đối tượng động duy nhất trong cảnh là bàn
tay người có độ phân giải không gian tương đối nhỏ trong ảnh? (2) Kỹ thuật C3D đã được
đánh giá trên các CSDL các hoạt động hỗn tạp. Chưa có một nghiên cứu chuyên sâu liệu
C3D có hiệu quả khi các góc nhìn thay đổi ? Ngoài ra để nâng cao hiệu năng của C3D, em
cũng đã nghiên cứu và thực hiện một số cải tiến trong cách lấy mẫu các frames và đánh giá
hiệu quả của C3D khi có thêm luồng dữ liệu quang học (optical flow). Các thực nghiệm
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

14


được thực hiện trên bộ dữ liệu gồm các video của 5 đối tượng thực hiện 5 loại cử chỉ dưới
3 góc nhìn khác nhau tại Viện MICA. Kết quả cho thấy phương pháp đề xuất khá ổn định
khi sự thay đổi góc nhìn là nhỏ. Kết quả này có thể cải tiến thêm nếu tích hợp những đặc
trưng bất biến với góc nhìn vào quá trình học.
Đề tài được thực hiện tại phòng Computer Vision, Viện MICA dưới sự hướng dẫn
của PGS. TS. Trần Thị Thanh Hải. Cấu trúc của ĐATN gồm 4 chương trình bày những vấn
đề sau:
-

Chương 1: Tổng quan về nhận dạng cử chỉ tay người và vấn đề đặt ra với đồ án

-

Chương 2: Nghiên cứu mạng nơ ron tích chập 3 chiều (C3D) cho bài toán nhận
dạng cử chỉ tay người .

-

Chương 3: Đánh giá thử nghiệm nhận dạng cử chỉ tay người dưới các góc nhìn
khác nhau từ ảnh RGB và luồng quang học

-

Chương 4: Kết luận và hướng phát triển

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

15


CHƯƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG CỬ CHỈ TAY NGƯỜI
VÀ VẤN ĐỀ ĐẶT RA VỚI ĐỒ ÁN
1.1.

Một số khái niệm
Cùng với sự tiến bộ của công nghệ hiện nay, giao tiếp giữa con người với máy tính

đang trở nên tự nhiên, đồng thời gần hơn với giao tiếp giữa con người với con người. Một
trong các phương pháp giao tiếp tự nhiên giữa người với người là dựa trên ngôn ngữ cơ
thể, cụ thể là cử chỉ của tay. Xu hướng cho phép máy tính nhận dạng cử chỉ tay người theo
thời gian thực đã xuất hiện trên một số sản phẩm thương mại như tivi thông minh
Samsung, cảm biến Kinect cho máy chơi game Xbox360 của Microsoft, DepthSense của
SoftKinect, camera Creative Interactive Gesture của Intel, tivi tích hợp nhận dạng khuôn
mặt và bàn tay của hãng Omron, hay thiết bị của Leap Motion.
Thông thường, bài toán nhận dạng cử chỉ tay được phân làm những loại loại sau:
-

Nhận dạng cử chỉ tay tĩnh (static hand gesture recognition): Cử chỉ tay tĩnh là cử
chỉ trong đó hình trạng của bàn tay không thay đổi trong thời gian thực hiện cử chỉ.
Vì vậy, việc nhận dạng cử chỉ tay tĩnh thường được thực hiện trên từng ảnh.

-

Nhận dạng cử chỉ quỹ đạo tay (hand trajectory gesture recognition): Nhận dạng cử
chỉ tay có xét tới dữ liệu tuần tự của quỹ đạo tay và khai thác thông tin về thời gian
của chuyển động. Ở đây giả thiết video đã được phân vùng về mặt thời gian (tức là
chỉ chứa duy nhất một cử chỉ).

-

Nhận dạng cử chỉ tay liên tục (continuous hand gesture recognition): Khác với
nhận dạng cử chỉ quỹ đạo tay (hand trajectory gesture recognition), bài toán nhận
dạng cử chỉ tay liên tục (continous hand gesture recognition) yêu cầu cả việc phát
hiện thời điểm bắt đầu và kết thúc của hành động (có thể nhiều lần).
Trong khuôn khổ của ĐATN, em hướng đến giải quyết bài toán thứ 2, tức là nhận

dạng cử chỉ tay với video đã được phân vùng về mặt thời gian (tức là đã xác định sẵn thời
điểm bắt đầu và kết thúc của chuyển động). Một hệ thống nhận dạng thông thường được
thực hiện thông qua 2 pha:
-

Pha huấn luyện: Sử dụng bộ dữ liệu cần học đưa vào huấn luyện để đưa ra mô hình
nhận dạng.

-

Pha nhận dạng: Sử dụng mô hình vừa huấn luyện được ở trên để thực hiện phân lớp
dữ liệu mới.

Trong mỗi pha đều có các khối xử lý cơ bản như sau:
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

16


-

Tiền xử lý dữ liệu: Chuyển đổi dữ liệu đầu vào sang định dạng chuẩn với mô hình.

-

Trích chọn đặc trưng: Từ dữ liệu đã được tiền xử lý, thực hiện trích rút các đặc
trưng biểu diễn hoạt động. Các đặc trưng này có thể được thiết kế bằng tay hoặc
được học bởi kỹ thuật học sâu.

-

Huấn luyện bộ phân lớp: sử dụng các đặc trưng được trích chọn để làm dữ liệu đầu
vào cho việc huấn luyện bộ phân lớp.

-

Nhận dạng: dữ liệu cần nhận dạng cũng được chuyển qua các bước tiền xử lý, trích
chọn đặc trưng, sau đó dùng bộ phân lớp đã được huấn luyện để dự đoán.

1.2.

Một số nghiên cứu liên quan về nhận dạng cử chỉ tay người

1.2.1. Hướng tiếp cận biểu diễn hoạt động dựa trên đặc trưng trích chọn được thiết
kế bằng tay (hand-crafted features)
Đặc trưng thiết kế bằng tay (handcrafted feature) là các đặc trưng được thiết kế từ
trước, nhằm đưa ra cấu trúc đặc trưng phù hợp nhất với từng đối tượng hoặc hoạt động.
Nhờ vậy mà các mô hình cải thiện được độ chính xác của mình. Đây là công việc đòi hỏi
sự sáng tạo và thời gian của các nhà khoa học dữ liệu.
Các đặc trưng giúp cho việc chuyển đổi dữ liệu thô ban đầu thành tập các thuộc
tính giúp biểu diễn dữ liệu tốt hơn, giúp tương thích với từng mô hình dự đoán cụ thể, cũng
như cải thiện độ chính xác của mô hình hiện tại.

Hình 1 : Các bước xử lý trong hệ thống nhận dạng sử dụng đặc trưng trích chọn được thiết
kế bằng tay
Hình 1 minh họa hệ thống tổng quát sử dụng đặc trưng được thiết kế bằng tay. Sơ đồ này
gồm 2 khối chính là:
-

Khối trích chọn đặc trưng bằng tay: Nhận đầu vào là các pixel của ảnh và đưa ra
các đặc trưng cho ảnh đó. Đặc trưng ở khối này được chọn từ trước tùy theo yêu
cầu bài toán và đặc điểm của từng dataset.

-

Khối phân lớp: Là một bộ phân lớp được huấn luyện từ trước với đầu vào là các
đặc trưng được xuất ra từ khối trích chọn đặc trưng và đưa ra nhãn lớp tương ứng.

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

17


Hiện nay, trên thế giới đã có rất nhiều đặc trưng được thiết kế để giải quyết bài toán nhận
dạng cử chỉ tay. Trong [2] các tác giả sử dụng mô hình Hidden Markov Model để biểu diễn
chuyển động liên tục của bàn tay, và các thông số của mô hình được học từ tập dữ liệu
CyberGlove. [3] kết hợp thông tin ảnh RGB và ảnh độ sâu (depth map): các đặc trưng của
bàn tay được học ở mức từng khung ảnh RGB còn thông tin khớp xương được học bằng
ảnh độ sâu, và chúng được kết hợp sử dụng phương pháp Extreme Learning Machine.
Trong [4] các tác giả đã phát triển 1 hệ thống nhận dạng cử chỉ tay để điều khiển thiết bị,
bằng cách sử dụng những cử chỉ có tính chu kỳ đóng. Do tính chu kỳ của các cử chỉ được
định nghĩa, các tác giả chỉ ra rằng những vấn đề kỹ thuật như phát hiện điểm bắt đầu và kết
thúc cử chỉ có thể được xử lý dễ dàng. Thông tin về hình dạng bàn tay được khai thác qua
thuật toán giảm số chiều phi tuyến ISOMAP, còn quỹ đạo chuyển động được trích xuất
bằng cách sử dụng kỹ thuật Kanade-Lucas-Tomasi (KLT), trước khi được kết hợp bằng 1
phương pháp nội suy đơn giản để tái tạo chuỗi ảnh được chuẩn hóa về pha. Cuối cùng, đầu
ra được phân loại bằng bộ phân lớp SVM [5].
1.2.2. Hướng tiếp cận biểu diễn hoạt động dựa trên kỹ thuật học sâu
Kỹ thuật học sâu (Deep learning) là một thuật toán học máy được xây dựng dựa
trên một số ý tưởng mô phỏng hệ thống não bộ của con người. Nó biểu diễn dữ liệu thông
qua nhiều tầng từ cụ thể đến trừu tượng qua đó trích rút được các đặc trưng có ý nghĩa
trong nhận dạng đối tượng ảnh. Thuật toán học sâu đã đạt được nhiều thành công trong bài
toán xử lý ảnh hay nhận dạng giọng nói. Khác với đặc trưng được thiết kế bằng tay, kỹ
thuật học sâu sẽ học các đặc trừng từ dữ liệu ảnh thô ban đầu.
Có rất nhiều công trình liên quan đến bài toán nhận dạng hoạt động sử dụng kỹ
thuật học sâu. Bài báo trình bày trong [6] sử dụng R*CNN (Region-based Convolutional
Neural Networks) để nhận dạng ngữ cảnh của hành động. Mô hình này xác định 2 phạm vi:
phạm vi thứ nhất là vị trí của người thực hiện hành động trong video, phạm vi thứ 2 là các
vùng đề xuất có liên quan đến hành động của người. Từ các vùng đề xuất giải thuật chọn
vùng có thông tin lớn nhất và cộng thêm vào thông tin của vùng phạm vi thứ nhất để đưa ra
kết quả cuối cùng. Nhóm tác giả trong [7] đề xuất kỹ thuật nhận dạng dạng dưa hình trạng
P-CNN (Pose-based Convolutional Neural Networks). Mô hình P-CNN xác định vị trí của
các bộ phận cơ thể và theo dõi các hoạt động của chúng. Trong [8], nhóm tác giả sử dụng
mạng CNN 2 luồng dữ liệu RGB và luồng quang học (Optical flow) trích thông tin về
chiều thời gian và tăng độ chính xác của mô hình. [9] phát triển phép toán tích chập 2
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

18


chiều thành 3 chiều để tăng thêm thông tin về chiều thời gian. [1] đã sử dụng ý tưởng phép
toán tích chập 3 chiều để thí nghiệm tìm ra tham số tốt nhất cho mô hình.
Đã có rất nhiều nghiên cứu về việc áp dụng những kỹ thuật học sâu nhận dạng hoạt
động cho bài toán nhận dạng cử chỉ tay động. [10] kết hợp thông tin ảnh RGB và ảnh độ
sâu bằng cách kết hợp giữa một mạng có độ phân giải cao (high resolution network –
HRN) và mạng có độ phân giải thấp (low resolution network – LRN). Xác suất dự đoán
cho mỗi lớp được tính bằng tích xác suất dự đoán của mỗi mạng. Trong [11] tác giả kết
hợp bài toán phát hiện và nhận dạng cử chỉ bàn tay bằng cách sử dụng một mạng nơ-ron
tích chập 3 chiều hồi quy (recurrent three-dimensional convolutional neural network) , kết
hợp với phương pháp Connectionist temporal classification (CTC). Các tác giả cũng đã
tiến hành thử nghiệm trên một tập dữ liệu gồm 1532 cử chỉ bàn tay, thực hiện bởi 20 đối
tượng, trong môi trường mô phỏng việc lái xe, dưới cả điều kiện rất sáng lẫn ánh sáng mờ.
[12] đề xuất một kiến trúc mạng CNN 3 chiều cho bài toán nhận dạng cử chỉ bàn tay liên
tục (continuous hand gesture recognition) được khởi tạo từ kiến trúc của [1], trong đó mỗi
frame của một chuỗi cử chỉ được biểu diễn bằng một khối không-thời gian (spatiotemporal volume) của 16 frame màu lân cận. Sau đó các tác giả sử dụng cửa sổ trượt theo
toàn bộ video để được xác suất lớp cho mỗi frame, trước khi cho vào hai lớp lọc đa số và
đưa ra dự đoán cuối cùng.
1.2.3. Nhận xét chung
Hướng biểu diễn dựa trên đặc trưng được trích xuất bằng tay cho kết quả khá tốt
trên các tập dữ liệu nhỏ và có một số đặc điểm nhất định. Tuy vậy trên thực tế, dữ liệu
được thu nhận được ở các điều kiện khác nhau và đa dạng. Cử chỉ tay người có thể bị che
khuất bởi các vật thể phía trước hay dữ liệu nhận được ở trong các khung cảnh khác nhau.
Do đó, đối với cơ sở dữ liệu lớn thì việc sử dụng phương pháp này là khá khó khăn.
Kỹ thuật học sâu có thể cải thiện phần nào các thách thức này. Khác với đặc trưng
trích xuất bằng tay, kỹ thuật học sâu không phụ thuộc vào sự đa dạng của bộ dữ liệu. Kỹ
thuật này có thể xây dựng bộ trích xuất đặc trưng dựa trên việc học cách biểu diễn chúng.
Tuy nhiên, kỹ thuật này đòi hỏi một lượng dữ liệu đủ lớn để đạt độ chính xác cho mô hình
và dữ liệu phải đủ tốt và bao quát toàn bộ các tình huống thực tế. Hơn nữa, việc tìm ra các
tham số và kiến trúc phù hợp cần rất nhiều thời gian để thử nghiệm.

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

19


1.3.

Mục tiêu của đồ án
Kỹ thuật học sâu là kỹ thuật có nhiều tiềm năng trong tương lai. Rất nhiều nhà

nghiên cứu đã thử nghiệm trên các mô hình khác nhau để tìm ra một kiến trúc phù hợp.
Cùng với sự bùng nổ dữ liệu trên toàn cầu từ các mạng xã hội như facebook, youtube, đã
có rất nhiều bộ dữ liệu được xây dựng như Sport1M chứa hơn 1 triệu video với 487 lớp,
UCF 101 chứa 13320 video thuộc 101 lớp... Hơn nữa, với sự phát triển nhanh chóng của
khoa học và kỹ thuật, máy tính, siêu máy tính với card đồ họa cho phép giải các bài toán
dữ liệu lớn. Nhờ đó việc thời gian tính toán được giảm đi hàng chục lần so với ban đầu.
Kỹ thuật C3D được trình bày trong [1] đã được đánh giá thử nghiệm với nhiều bộ
tham số khác nhau và đã cho kết quả khá cao. Trong ĐATN này em tập trung vào việc
phân tích ảnh hưởng của góc nhìn đối với phương pháp được đề xuất, bằng cách thử
nghiệm trên tập dữ liệu được thu thập gồm các video của 5 đối tượng, thuộc 5 lớp hoạt
động dưới 3 góc nhìn khác nhau. Phương pháp thực nghiệm là cross-validation leave-onesubject-out với tập kiểm tra trên các góc nhìn khác nhau, để khảo sát ảnh hưởng của góc
nhìn. Trong chương 2 tiếp theo, em sẽ trình bày các lý thuyết cơ bản về mạng học sâu và
mạng neuron tích chập 3 chiều C3D. Các mở rộng và triển khai cài đặt và thử nghiệm đánh
giá mạng C3D trên dữ liệu cử chỉ động của bàn tay sẽ được trình bày trong chương 3.

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

20


CHƯƠNG 2: MẠNG NƠ RON TÍCH CHẬP CHO BÀI TOÁN NHẬN
DẠNG CỬ CHỈ TAY NGƯỜI
2.1. Giới thiệu chung về mạng nơ- ron tích chập
2.1.1. Mạng nơ-ron nhân tạo (artificial neural network)
Mạng nơ-ron nhân tạo được thiết kế dựa trên những nghiên cứu sinh học về bộ não
người (Hình 2). Hình dưới miêu tả cấu trúc của một nơ-ron của bộ não người

Hình 2 : Minh họa mạng nơ-ron của người (từ Rob Fergus)
Nơ-ron là đơn vị tính toán cơ bản của não người. Dữ liệu được đưa tới các nơ ron
thông qua các Dendrite vào Nucleus để tính toán. Tín hiệu ra được xuất ra ở dây Axon.
Các nơ-ron được liên kết với nhau thông qua các dây Synapse. Mạng nơ-ron của não người
bao gồm rất nhiều phần tử như vậy liên kết với nhau. Dựa trên những quan sát trên, các
nhà nghiên cứu thiết kế mạng nơ-ron nhân tạo (artificial neural network) với hi vọng rằng
một mô hình mô phỏng nguyên tắc hoạt động của não người sẽ cho kết quả tốt đối với các
bài toán về trí tuệ nhân tạo.
Phần tiếp sẽ trình bày các tìm hiểu của em về cấu tạo của một mạng nơ ron truyền
thẳng (feedforward neural network) tổng quát dựa trên tài liệu tham khảo [13]. Đây là cơ
sở để hiểu kỹ hơn về các mạng học sâu sẽ trình bày ở các phần tiếp theo.

2.1.1.1 Cấu trúc mạng nơ-ron
Đầu tiên, xét 1 mạng nơ-ron truyền thẳng 2 tầng. Với đầu vào x1 ,..., xD , chúng ta
xây dựng M tổ hợp tuyến tính như sau:
D

(1)
a j   w(1)
ji xi  w j 0
i 1

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

21


Trong đó j  1,...M và chỉ số (1) chỉ các thông số trong tầng đầu tiên của mạng.
(1)
(1)
Chúng ta gọi w ji là trọng số (weight) còn w j 0 là độ lệch (bias), a j là kích hoạt

(activation). Mỗi giá trị a j sẽ được tiếp tục tác động bởi 1 hàm kích hoạt (activation
function) khả vi và phi tuyến h(.)

z j  h( a j )
h(.) thường là hàm sigmoid:

 (a) 

1
1  exp( a)

Hoặc hàm tanh:

tanh(a)  2 (2a)  1
z j gọi là đơn vị ẩn (hidden unit). Sau đó z j cũng được tác động tương tự như đối với xi
M

ak   wkj(2)  wk(2)0
j 1

yk   (ak )
Trong đó k  1,..., K và K là tổng số đầu ra.  (.) cũng là 1 hàm kích hoạt (activation
function) có thể giống hoặc khác với h(.) ở tầng 1. Ở đây chú ý rằng vì yk   (ak ) là đầu
ra của mạng nơ-ron, nên việc chọn  phụ thuộc vào bài toán cụ thể:
-

Với bài toán hồi quy (regression), thông thường yk  ak

-

Với bài toán phân lớp (classification), thường sử dụng hàm softmax:

yk ( x, w) 

exp(ak ( x, w))
 exp(a j ( x, w))
i

Kết hợp lại các công thức ở tầng 1 và tầng 2 ta được:
M

D

j 1

i 1

(1)
(2)
yk ( x, w)   ( wkj(2) h( w(1)
ji xi  w j 0 )  wk 0 ) (*)

Trong đó tất cả các trọng số đã được gộp lại thành 1 vector w . Như vậy mô hình mạng nơron đơn giản là 1 biến đổi phi tuyến từ đầu vào {xi } thành đầu ra {yk } kiểm soát bởi các
thông số w
(1)
(2)
Chú ý rằng w j 0 và wk 0 có thể được gộp vào bằng cách định nghĩa thêm biến đầu vào cố

định x0  1 và biến ẩn z0  1 . Công thức (*) sẽ trở thành như sau:

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

22


M

D

j 0

i 0

yk ( x, w)   ( wkj(2) h( w(1)
ji xi )) (**)
Nhãn lớp được dự đoán:
y  arg max k yk ( x, w)

Đây chính là kiến trúc tổng quát của mạng nơ-ron truyền thẳng 2 tầng. Các mạng nhiều
hơn 2 tầng có thể được xây dựng hoàn toàn tương tự.

2.1.1.2 Huấn luyện mạng nơ-ron
Tiếp theo chúng ta xét đến việc tìm các trọng số hợp lý cho mạng nơ-ron. Ở đây chỉ trình
bày bài toán phân lớp (classification). Đầu tiên, xét trường hợp phân loại 2 lớp (binary
classification), trong đó với mỗi quan sát x chúng ta cần dự đoán 1 biến mục tiêu (target
variable) t với t  1 chỉ lớp C1 , t  0 chỉ lớp C2 . Vì đây là bài toán phân loại 2 lớp nên
đầu ra của mạng nơ-ron chỉ có 1 giá trị y , với hàm kích hoạt (activation function) thường
được chọn là hàm sigmoid.

y

1
1  exp(a)

Dễ thấy 0  y( x, w)  1 . Như vậy có thể coi:
+) P(C1| x)  y( x, w) (xác suất nhãn là C1 khi biết đầu vào là x)
+) P(C 2 | x)  1  y( x, w) (xác suất nhãn là C2 khi biết đầu vào là x)
Do đó phân phối điều kiện của biến mục tiêu (target variable) t khi biết biến đầu vào
x được viết như sau:
P(t | x, w)  y( x, w)t {1  y( x, w)}1t

Bây giờ xét 1 tập dữ liệu D  {x1 , x2 ,..., xN } với biến mục tiêu tương ứng {t1 , t2 ,..., t N } . Nếu
giả thiết rằng ( x1 , t1 ), ( x2 , t2 ),...( xN , t N ) được phân phối độc lập và tương đương
(independent and identically distributed – i.i.d) ta có:
P(t1 , t2 ,..., t N | D, w)  P(t1 | x1 , w) P(t2 | x2 , w)...P(t N | xN , w)
N

P(t1 , t2 ,..., t N | D, w)   y (x n , w)tn {1  y( xn , w)}1tn
n 1

Ta cần tìm w sao cho P(t1 , t2 ,..., t N | D, w) đạt giá trị lớn nhất. Định nghĩa hàm lỗi (error
function) như sau:
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

23


E (w)   ln P(t1 , t2 ,..., t N | D, w)

Như vậy việc tìm w sao cho P(t1 , t2 ,..., t N | D, w) đạt giá trị lớn nhất tương đương với việc
tìm w sao cho E (w) đạt giá trị nhỏ nhất. Khai triển biểu thức trên ta được công thức hàm
lỗi cross-entropy (cross-entropy error):
N

E(w)  {tn ln y ( xn , w)  (1  t n ) ln(1  y( xn , w))}
n 1

Với trường hợp phân loại nhiều lớp (multi-class classification) cũng tương tự. Gọi K là số
lớp, biến mục tiêu (target variable) t n của quan sát xn được định nghĩa như sau:
t n  {tn1 , tn 2 ,..., t nK }

Trong đó k : tnk  1, tnj  0j  k . Đây gọi là mã hóa 1-thuộc-K (1-of-K coding scheme).
Đầu ra của mạng nơ-ron được coi như xác suất có điều kiện:
yk ( xn , w)  P(t kn  1| xn )

Tương tự như với trường hợp phân loại 2 lớp, ta có:
N

K

E(w)   tnk ln yk ( xn , w)
n 1 k 1

Thông thường với bài toán này, hàm kích hoạt đầu ra (output activation function)
được chọn là hàm softmax:

yk ( x, w) 

exp(ak ( x, w))
 exp(a j ( x, w))
i

Như vậy, để tìm bộ trọng số tốt nhất cho mạng nơ-ron ta cần tìm w sao cho E(w)
đạt giá trị nhỏ nhất. 1 số phương pháp thường dùng để tối thiểu hàm E(w) là Stochastic
Gradient Descent (SGD), Newton-Raphson,..... Đặc điểm chung của những phương pháp

E (w)
đó là sử dụng đạo hàm bậc 1 của E(w), tức là w (l ) trong đó l chỉ tầng của trọng số.
ij
E (w)
Phương pháp phổ biến để tìm w (l ) là lan truyền ngược (backpropagation), chi tiết của
ij
phương pháp này có thể xem trong [13].
2.1.2. Mạng nơ-ron tích chập
Một điểm khác biệt quan trọng giữa bài toán nhận dạng đối tượng và các bài toán
phân lớp thông thường khác là với bài toán nhận dạng, chúng ta biết rằng dự đoán nên
không thay đổi, hay nói cách khác là bất biến (invariant) khi thực hiện 1 phép biến đổi nào
Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

24


đó. Ví dụ, trong bài toán phân loại ảnh hai chiều, ví dụ như chữ số viết tay, một chữ số khi
được tác động bởi một phép dịch hoặc được phóng to hay thu nhỏ, thì thuật toán học cần
phải phân lớp chữ số đó giống hệt như với trường hợp ban đầu. Tức là một bộ phân lớp tốt
với bài toán nhận dạng ảnh cần có tính chất bất biến với phép dịch (translation invariance)
và bất biến với kích cỡ (scale invariance).

Hình 3 : Chữ số 6 được viết tay. Bên trái là ảnh gốc, ở giữa là ảnh được phóng to, bên
phải là ảnh gốc đã được quay một góc 30 độ. Tham khảo của [13]
Một trong những hướng tiếp cận để đảm bảo những tính chất trên là tích hợp trực
tiếp những tính chất đó vào trong kiến trúc mạng. Đây là cơ sở của mạng nơ-ron tích chập
(Convolutional Neural Network - CNN) [14]. Ý tưởng của CNN là như sau:
-

Các điểm ảnh gần nhau thì sẽ tương quan với nhau hơn là những điểm ảnh ở xa.
Tính chất này được các phương pháp truyền thống trong thị giác máy tính khai thác
bằng cách trích xuất các đặc trưng địa phương, những đặc trưng này chỉ phụ thuộc
vào các vùng con nhỏ của ảnh. Thông tin của những đặc trưng đó có thể được kết
hợp trong các giai đoạn xử lý sau đó để phát hiện đặc trưng ở mức cao hơn và từ đó
tìm ra thông tin cần thiết của toàn bộ ảnh.

-

Các đặc trưng có ích với một vùng nào đó của ảnh thì nhiều khả năng cũng sẽ có
ích với những vùng khác của ảnh, ví dụ như khi ảnh được tác động bởi một phép
dịch
Dựa trên những quan sát đó, CNN được thiết kế thông qua 3 cơ chế:

-

Các trường thụ thể địa phương (local receptive field)

-

Chia sẻ trọng số (weight sharing)

-

Lấy mẫu con (subsampling)

Sinh viên thực hiện: Đặng Mạnh Trường 20134209 Khóa 58 Lớp KSCLC HTTT&TT

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×