1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

68 598 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 2,39 MB

Nội dung

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

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỂN THÔNG

Trang 2

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

Trang 3

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

Trang 4

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

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

Trang 13

DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ

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

PCNN Pose-based Convolutional Neural

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

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

Trang 14

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

Trang 15

đượ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

Trang 16

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

Trang 17

- 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

- 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

Trang 18

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

Trang 19

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 (spatio-temporal 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

Trang 20

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-one-subject-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

Trang 21

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, ,x , chúng ta D

xây dựng M tổ hợp tuyến tính như sau:

(1) (1)

0 1

D

j ji i j i

a w x w

 

Trang 22

Trong đó j1, M và chỉ số (1) chỉ các thông số trong tầng đầu tiên của mạng

Chúng ta gọi w là trọng số (weight) còn (1)ji (1)

0

j

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

zjh a( j)(.)

h thường là hàm sigmoid:

1( )

1 exp( a)

a

 

 Hoặc hàm tanh:

tanh( )a 2 (2 ) 1 a

zj gọi là đơn vị ẩn (hidden unit) Sau đó z jcũng được tác động tương tự như đối với x i

(2) (2) 0 1

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ì y k (a k)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 y ka k

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

exp( ( , ))( , )

exp( ( , ))

k k

j i

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{ }x thành đầu ra { } i y k kiểm soát bởi các thông số w

Chú ý rằng w và (1)j0 (2)

0

w có thể được gộp vào bằng cách định nghĩa thêm biến đầu vào cố

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

Trang 23

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1chỉ lớp C , 1 t0 chỉ lớp C Vì đây là bài toán phân loại 2 lớp nên 2

đầ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

Dễ thấy 0y x( , w)1 Như vậy có thể coi:

+) ( 1| )P C xy 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:

Trang 24

1E(w) { ln ( , w) (1 t ) ln(1 ( , w))}

Trong đó k t: nk 1,t nj   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:

exp( ( , ))

k k

j 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

đó là sử dụng đạo hàm bậc 1 của E(w), tức là ( )

Trang 25

đó 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)

Trang 26

2.1.2.1 Cấu trúc:

Hình 4: Cấu trúc mạng CNN

Convolutional layer

Trong mô hình CNN, các layer sẽ kết nối với nhau thông qua phép toán tích chập Mỗi

nơ ron tiếp theo là kết quả của việc áp dụng một kernel lên một vùng nơ ron trước đó Mỗi layer như vậy có thể có từ vài trăm đến vài nghìn kernel như vậy Hình dưới đây mô tả một phép toán tích chập trong CNN Kết quả của phép toán này là activation map hay feature map Ta có thể điều chỉnh kích cỡ của các feature map bằng các tham số:

- Depth - Độ sâu: là số lượng filter ta sử dụng trong tầng convolution Ví dụ tầng convolution có đầu vào là một ảnh có kích thước 32x32 sử dụng 3 filter thì đầu ra

ReLU (Rectified Linear Unit) là toán tử được sử dụng sau mỗi phép toán tích chập có

tác dụng thay các giá trị âm trong feature map đầu ra thành các giá trị 0 Mục đích của phép toán này là đưa vào các giá trị phi tuyến vì hầu hết các giá trị dữ liệu trong thực tế là phi tuyến

Trang 27

Ngoài ra chúng ta có thể sử dụng toán tử phi tuyến khác như tanh hay sigmoid, nhưng trong hầu hết các trường hợp toán tử ReLU hiệu quả hơn

Tầng Pooling

Pooling là phép toán lấy mẫu để giảm số chiều của các feature map nhưng vẫn giữ được

các thông tin quan trọng nhất Giống như tầng convolution, tầng pooling cũng sử dụng một filter đặt trên một phần của feature map đầu vào và di chuyển filter đó trên toàn bộ vị trí của feature map đầu vào Có nhiều loại phép toán pooling được sử dụng:

- Max pooling: Lấy giá trị lớn nhất

- Average pooling: Lấy giá trị trung bình

- Sum pooling: Lấy tổng các giá trị

Tầng liên kết đầy đủ

Là một mạng nơ ron nhiều tầng (Multi Layer Perceptron) sử dụng hàm kích hoạt softmax ở đầu ra (có thể sử dụng bộ phân lớp khác như SVM) “Liên kết đầy đủ” nghĩa là mỗi nơ ron ở tầng trước sẽ được liên kết với toàn bộ nơ ron ở tầng phía sau Mục tiêu của tầng liên kết đầy đủ là sử dụng các đặc trưng ở mức cao đã được phân tách bởi các tầng convolution và pooling ở phía trước để đưa vào các lớp của bộ dữ liệu

Kiến trúc phổ biến của một mạng nơ ron tích chập là xếp chồng một số khuôn mẫu gồm các tầng như trên hình vẽ Sau đó các đặc trưng sẽ được chuyển vào các một số tầng liên kết đầy đủ Tầng cuối cùng sẽ đánh giá điểm cho từng lớp của bộ dữ liệu Điểm này đánh giá cho khả năng đầu vào sẽ thuộc vào lớp đó Kiến trúc phổ biến ở dưới dạng biểu thức như sau:

INPUT -> [[CONV->RELU]*N->POOL?]*M -> [FC->RELU]*K -> FC

Trong đó dấu “*” thể hiện sự lặp lại, còn POOL? chỉ sự tùy chọn Thông thường ta sử dụng: 0  N  3, M  0, 0   K 3 Hình dưới minh hoạc kiến trúc CNN trong [15] Kiến trúc này đã đạt kết quả tốt trên tập dữ liệu ImageNet

Hình 5 : Kiến trúc CNN trong [15]

Trang 28

2.1.2.2 Học chuyển tiếp (transfer learning):

1 trong số những lý do khiến mạng CNN được sử dụng rộng rãi là khả năng học

chuyển tiếp (transfer learning), tức là sử dụng 1 mạng đã được huấn luyện sẵn trên 1 tập

dữ liệu lớn nào đó (ví dụ như ImageNet [15]) để khởi tạo cho bài toán của mình Có 1 số cách học chuyển tiếp sau đây:

- Sử dụng mạng như 1 bộ trích xuất đặc trưng (ConvNet as fixed feature extractor): Lấy 1

mạng CNN đã được huấn luyện sẵn trên 1 tập dữ liệu lớn nào đó, bỏ đi lớp kết nối đầy đủ cuối cùng (lớp này cho ra xác suất của nhãn của tập dữ liệu ban đầu) rồi sử dụng nó để trích xuất đặc trưng cho tập dữ liệu của mình, sau đó sử dụng 1 bộ phân lớp để học trên đặc trưng đó Ví dụ mạng AlexNet [15] cho ra 1 vector kích thước (1,4096) cho mỗi ảnh, ta sẽ lấy 1 bộ phân lớp để học trên vector đặc trưng đó

- Tinh chỉnh (finetune) mạng nơ ron (Fine-tuning the Conv-net): Sử dụng lan truyền

ngược (backpropagation) để điều chỉnh các tham số ở các tầng cuối (hoặc có thể với toàn

bộ mạng) Lý do là vì các đặc trưng của những tầng đầu của một mạng CNN chứa nhiều đặc trưng chung hơn nên có thể được sử dụng với nhiều bài toán khác nhau

Khi sử dụng phương pháp học chuyển tiếp, có 4 trường hợp sau:

- Tập dữ liệu mới nhỏ và tương tự với tập dữ liệu gốc: Vì tập dữ liệu nhỏ, ta không nên finetune mạng do vấn đề overfitting Vì dữ liệu tương tự với dữ liệu gốc, nhiều khả năng đặc trưng ở những tầng ban đầu của mạng có thể cũng sẽ hữu ích cho tập dữ liệu mới Vậy tốt hơn hết là huấn luyện 1 bộ phân lớp tuyến tính trên đặc trưng trích xuất từ mạng

- Tập dữ liệu mới lớn và tương tự tập dữ liệu gốc: Vì có nhiều dữ liệu hơn nên nhiều khả năng sẽ không bị overfit khi finetune toàn bộ mạng

- Tập dữ liệu mới nhỏ nhưng rất khác tập dữ liệu gốc: Vì tập dữ liệu nhỏ nên tốt nhất là chỉ huấn luyện 1 bộ phân lớp tuyến tính Vì tập dữ liệu mới rất khác tập dữ liệu gốc, việc huấn luyện bộ phân lớp với đặc trưng của các tầng cuối có thể sẽ không hiệu quả, vì chúng chứa nhiều đặc trưng riêng biệt của tập dữ liệu gốc Thay vào đó có thể huấn luyện 1 bộ phân lớp từ đặc trưng trích xuất bởi các tầng trước của mạng

- Tập dữ liệu mới lớn và rất khác so với tập dữ liệu gốc Vì tập dữ liệu mới lớn, có thể huấn luyện mạng từ đầu Tuy nhiên trong thực tế việc khởi tạo trọng số từ 1 mô hình đã huấn luyện sẵn vẫn có thể có ích

Trang 29

2.1.2.3 Áp dụng cho bài toán nhận dạng hoạt động của video:

Trong những năm gần đây, các nhà nghiên cứu đã thiết kế nhiều kiến trúc mạng ron khác nhau dựa trên ý tưởng của [15], ví dụ như VGG-net [16], Inception [17] và đã đạt được những thành tựu đáng kể cho bài toán nhận dạng ảnh Tuy nhiên việc áp dụng những

nơ-kỹ thuật này cho bài toán nhận dạng hoạt động nói chung và nhận dạng cử chỉ tay nói riêng

đã không đạt được kết quả như mong muốn Một trong số những lý do là vì các tập dữ liệu video được sử dụng cho đến hiện tại hoặc là quá nhỏ hoặc là quá nhiễu Ví dụ tập video UCF101 chỉ có 100 ví dụ mỗi lớp, trong khi tập ảnh ImageNet có 1000 ví dụ mỗi lớp Ngược lại, tập Sport1m có 1 triệu ví dụ và 487 lớp, nhưng video được thu thập một cách tự động và do đó không tránh khỏi sai lệch về nhãn Ngoài ra, tập dữ liệu THUMOS có 45 triệu frame, nhưng chỉ có một phần nhỏ trong số đó là được gán nhãn Vì những vấn đề trên nên việc huấn luyện các mạng tích chập 3D cho bài toán nhận dạng hoạt động nói chung và nhận dạng cử chỉ tay động nói riêng vẫn sử dụng các tập dữ liệu nhỏ hơn như UCF101 và HMDB51 Phần lớn những video trong các tập dữ liệu này là các hành động được thực hiện trong thời gian ngắn Điều này làm đơn giản quá trình huấn luyện, nhưng ngược lại do kích thước tập dữ liệu quá nhỏ nên dẫn đến nguy cơ overfit [18]

Để khắc phục điều này, các nhà nghiên cứu thường sử dụng các kỹ thuật sau:

- Kết hợp 3D Convnet và mã hóa Fisher vector [19]

- Kết hợp dữ liệu ảnh RGB với ảnh độ sâu (depth image), ví dụ như [10]

- Kết hợp dữ liệu ảnh RGB với ảnh luồng quang học (optical flow), ví dụ như [8]

Như vậy có thể thấy rằng bài toán nhận dạng hoạt động nói chung và nhận dạng cử chỉ tay động nói riêng vẫn còn nhiều thách thức Phần tiếp theo sẽ trình bày một số kiến trúc CNN cho bài toán nhận dạng hoạt động nói chung và nhận dạng cử chỉ tay động nói riêng

2.1.3 Một số kiến trúc của CNN cho bài toán nhận dạng cử chỉ

2.1.3.1 Nhận dạng cử chỉ nói chung

P-CNN: Pose-based CNN Features for Action Recognition

Thuật toán này nhận dạng hoạt động của người bằng cách quan sát chuyển động của từng bộ phận trên cơ thể Trong [7], từ ảnh đầu vào ở dạng RGB tác giả đã nhận diện các

bộ phận: tay trái, tay phải, phần thân trên, toàn bộ cơ thể và toàn bộ bức hình Nhờ việc cắt các khung hình chứa các bộ phận đó và định cỡ là 224x224 pixel ta có được ảnh RGB chứa thông tin của các cử chỉ Sau đó tác giả tính luồng quang học dựa theo phương pháp [20]

Trang 30

để có được luồng thông tin thứ 2 về các cử chỉ Mỗi ảnh của luồng quang học sẽ được chuẩn hóa về đoạn [0, 255] và chứa 3 kênh: trường dịch chuyển theo phương ngang, trường dịch chuyển theo phương đứng và độ lớn của vectơ dịch chuyển Các vectơ đặc trưng của 2 luồng này sau khi được trích xuất sẽ được nối với nhau tạo ra đầu vào cho bộ phân lớp

Hình 6 : Kiến trúc của [7]

Two-Stream Convolutional Networks for Action Recognition in Videos [8]

Giống với [7], kiến trúc của [8] cũng sử dụng 2 luồng dữ liệu là ảnh RGB và luồng

quang học được tính theo phương pháp trong [20] Tuy nhiên, dữ liệu đầu vào của [8] lại

là toàn bộ ảnh của video [8] sử dụng cách xếp chồng các luồng quang học theo phương ngang và theo phương đứng để làm đầu vào cho luồng dữ liệu thời gian Dữ liệu đầu ra được tính bằng cách kết hợp muộn 2 luồng thông tin đó theo phương pháp kết hợp muộn hoặc sử dụng SVM Phương pháp này cho độ chính xác cao nhất với phương pháp kết hợp dùng SVM là 88.0% đối với bộ dữ liệu UCF 101 và 59.4% với bộ dữ liệu HMDB-51

Hình 7 : Kiến trúc của mạng 2 luồng trong [8]

Trang 31

2.1.3.2 Nhận dạng cử chỉ tay động

High resolution network (HRN) and low resolution network (LRN) [10]

Thuật toán này nhận dạng hoạt động của cử chỉ tay bằng cách kết hợp thông tin từ ảnh RGB và ảnh độ sâu Các tác giả ghép trực tiếp thông tin gradient ảnh RGB cùng với ảnh độ sâu thành một khối 57 x 125 x 32 vào hệ thống mạng, nhằm trực tiếp học mối liên quan giữa thông tin ảnh độ sâu và ảnh gradient RGB Hệ thống mạng của [10] bao gồm hai mạng con: Một mạng phân giải cao (high resolution network – HRN) và mạng phân giải thấp (low resolution network - LRN) với các trọng số tương ứng là WH và WL Mỗi mạng con sẽ đưa ra xác suất cho từng lớp P(C | x,W) trong đó C là nhãn của quan sát x, còn W là trọng số của mạng con Xác suất của cả hai mạng con được kết hợp như sau:

Với mạng con LRN, đầu vào là một khối 28 x 62 x 32 gồm cả ảnh độ sâu và gradient ảnh gốc, được lấy mẫu bằng phương pháp Nearest Neighbor Interpolation (NNI) Tương tự với mạng con HRN, mạng con LRN cũng gồm 1 số lớp tích chập 3D đi kèm với lớp max-pooling, sau đó là 2 lớp FC, cuối cùng là lớp softmax Mọi lớp trong mạng, ngoại trừ lớp softmax đều có hàm kích hoạt như sau:

( ) max(0, z)

f z

Đầu ra của lớp softmax được tính như sau:

exp( )( | x, W)

Trang 32

Để xử lý việc phát hiện đâu là cử chỉ tay, các tác giả sử dụng phương pháp

Connectionist temporal classification (CTC) CTC là hàm mất mán được thiết kế để dự

đoán cho luồng không được phân đoạn CTC được ứng dụng trong [11] để phát hiện và

dán nhãn đúng vùng chứa cử chỉ, còn những clip còn lại sẽ được dán nhãn no gesture (không có cử chỉ) Đầu tiên, các tác giả thêm 1 lớp no gesture: A' Ano_gesture Lớp softmax cũng sẽ đưa ra xác suất có điều kiện tương ứng cho lớp này Thay vì lấy trung bình trên tất cả các clip của 1 cử chỉ được phân vùng từ trước, [11] tính xác suất quan sát được 1 cử chỉ (hoặc không có cử chỉ) k tại thời điểm t từ đầu vào X: ( , | ) t k [0, )

P k t X   s t N

Các tác giả định nghĩa 1 đường đi  là 1 ánh xạ có thể có giữa chuỗi đầu vào X và nhãn lớp y Xác suất xảy ra đường đi là ( | ) t

t t

PX  s trong đó t là nhãn lớp dự đoán tại thời điểm t trên đường đi 

Trang 33

( )

YB

Trong đó các nhãn giống nhau được coi như một nhãn duy nhất, và nhãn no gesture bị loại

bỏ Ví dụ: B( ,1, 2, ,   ) B( 1,1, , 2,     ) 1, 2 Như vậy rất nhiều đường đi  sẽ cho ra cùng 1 chuỗi sự kiện Y Xác suất quan sát 1 chuỗi sự kiện Y khi biết đầu vào X là tổng xác suất điều kiện của mọi đường ánh xạ tới chuỗi sự kiện Y đó, tức là

Việc tính P(Y|X) có thể được tính một cách dễ dàng sử dụng quy hoachj động [11]

Từ đó các tác giả chỉ ra rằng hàm mục tiêu của CTC được tính như sau:

Trang 34

kết quả tốt trên bài toán nhận dạng cử chỉ tay động Một trong những kiến trúc như vậy là mạng nơ ron tích chập 3 chiều, một sự mở rộng của mạng nơ-ron tích chập 2 chiều [15]

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

Kiến trúc mạng nơ ron tích chập ba chiều

Trong mạng nơ ron tích chập 2 chiều, phép tích chập 2 chiều được áp dụng ở tầng tích chập (convolutional layer) để trích xuất ra đặc trưng từ các feature map ở các tầng trước đó Trong bài toán phân tích video, chúng ta cần phải trích xuất được thông tin liên quan từ các hình ảnh nối tiếp lẫn nhau qua đó cần thêm chiều thứ 3 là chiều thời gian Phép toán tích chập 2D không cho ta điều này Shuiwang Ji đã đề xuất phép toán tích chập 3 chiều để lấy thông tin về chiều thời gian từ các video

Phép toán nhân chập 3 chiều được thực hiện như sau:

- Tạo một khối đầu vào 3 chiều bằng cách sắp đặt liên tiếp các frame của một video

- Khác với phép nhân chập 2 chiều, phép nhân chập 3 chiều sử dụng nhân là một khối 3D dịch chuyển qua lại trên khối đầu vào đó Đầu ra là giá trị được tính bằng cách nhân từng phần tử của nhân với đầu vào và sau đó lấy tổng các giá trị đó

- Đầu ra của phép toán này là một khối 3 chiều

Hình 10 minh họa cho phép nhân chập 3 chiều

Hình 10 : Minh họa phép toán tích chập 3 chiều [1]

Dựa trên cơ sở phép toán tích chập 3 chiều, [1] đã xây dựng kiến trúc mạng nơ ron tích chập C3D cho việc xử lý một lượng lớn các video Theo [1], một cách biểu diễn video hiệu quả cần có các đặc điểm như sau:

- Tính tổng quát (generic): nó có thể biểu diễn nhiều loại video một cách riêng biệt

- Gọn nhẹ (compact): vì cần phải làm việc với hàng triệu video, nên tính gọn nhẹ giúp cho việc lưu trữ và mở rộng

- Tính toán hiệu quả (efficient): Nó cần phải có một tốc độ tính toán nhanh chóng

Ngày đăng: 10/01/2019, 11:16

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
5. Burges C.J.C. (1998). A Tutorial on Support Vector Machines for Pattern Recognition. Data Min Knowl Discov, 2(2), 121–167 Sách, tạp chí
Tiêu đề: Data Min Knowl Discov
Tác giả: Burges C.J.C
Năm: 1998
9. Ji S., Xu W., Yang M., et al. (2013). 3D Convolutional Neural Networks for Human Action Recognition. IEEE Trans Pattern Anal Mach Intell, 35(1), 221–231 Sách, tạp chí
Tiêu đề: IEEE Trans Pattern Anal Mach Intell
Tác giả: Ji S., Xu W., Yang M., et al
Năm: 2013
13.Bishop C.M. (2006), Pattern recognition and machine learning, Springer, New York Sách, tạp chí
Tiêu đề: Pattern recognition and machine learning
Tác giả: Bishop C.M
Năm: 2006
15.Krizhevsky A., Sutskever I., and Hinton G.E. (2012). ImageNet classification with deep convolutional neural networks. Commun ACM, 60(6), 84–90 Sách, tạp chí
Tiêu đề: Commun ACM
Tác giả: Krizhevsky A., Sutskever I., and Hinton G.E
Năm: 2012
19.Beh J., Han D., and Ko H. (2014). Rule-based trajectory segmentation for modeling hand motion trajectory. Pattern Recognit, 47(4), 1586–1601 Sách, tạp chí
Tiêu đề: Pattern Recognit
Tác giả: Beh J., Han D., and Ko H
Năm: 2014
20.Brox T., Bruhn A., Papenberg N., et al. (2004). High Accuracy Optical Flow Estimation Based on a Theory for Warping. Computer Vision - ECCV 2004. Springer Berlin Heidelberg, Berlin, Heidelberg, 25–36 Sách, tạp chí
Tiêu đề: Computer Vision - ECCV 2004
Tác giả: Brox T., Bruhn A., Papenberg N., et al
Năm: 2004
21.Khong V.M. and Tran T.H. (2018). Improving Human Action Recognition with Two- Stream 3D Convolutional Neural Network. 2018 1st International Conference on Multimedia Analysis and Pattern Recognition (MAPR), 1–6, 1–6 Sách, tạp chí
Tiêu đề: 2018 1st International Conference on Multimedia Analysis and Pattern Recognition (MAPR)
Tác giả: Khong V.M. and Tran T.H
Năm: 2018
24.Le T.L., Nguyen V.N., Tran T.T.H., et al. (2013). Temporal gesture segmentation for recognition. 2013 International Conference on Computing, Management and Telecommunications (ComManTel), 369–373, 369–373 Sách, tạp chí
Tiêu đề: 2013 International Conference on Computing, Management and Telecommunications (ComManTel)
Tác giả: Le T.L., Nguyen V.N., Tran T.T.H., et al
Năm: 2013
1. Tran D., Bourdev L., Fergus R., et al. (2015). Learning Spatiotemporal Features with 3D Convolutional Networks. IEEE, 4489–4497, 4489–4497 Khác
2. Qing Chen, El-Sawah A., Joslin C., et al. (2005). A dynamic gesture interface for virtual environments based on hidden markov models. IEEE, 109–114, 109–114 Khác
3. Chen X. and Koskela M. (2013). Online RGB-D gesture recognition with extreme learning machines. ACM Press, 467–474, 467–474 Khác
4. Doan H.-G., Vu H., and Tran T.-H. (2017). Dynamic hand gesture recognition from cyclical hand pattern. IEEE, 97–100, 97–100 Khác
6. Gkioxari G., Girshick R., and Malik J. (2015). Contextual Action Recognition with R*CNN. IEEE, 1080–1088, 1080–1088 Khác
7. Cheron G., Laptev I., and Schmid C. (2015). P-CNN: Pose-Based CNN Features for Action Recognition. IEEE, 3218–3226, 3218–3226 Khác
8. Simonyan K. and Zisserman A. Two-Stream Convolutional Networks for Action Recognition in Videos. 9 Khác
10.Molchanov P., Gupta S., Kim K., et al. (2015). Hand gesture recognition with 3D convolutional neural networks. IEEE, 1–7, 1–7 Khác
11.Online Detection and Classification of Dynamic Hand Gestures with Recurrent 3D Convolutional Neural Networks - IEEE Conference Publication. accessed: 05/22/2018 Khác
12.Camgoz N.C., Hadfield S., Koller O., et al. (2016). Using Convolutional 3D Neural Networks for User-independent continuous gesture recognition. IEEE, 49–54, 49–54 Khác
14.Becker S. and Lecun Y. (1989). Improving the convergence of back-propagation learning with second-order methods. Proc 1988 Connect Models Summer Sch San Mateo Khác
16.Simonyan K. and Zisserman A. (2014). Very Deep Convolutional Networks for Large- Scale Image Recognition. ArXiv14091556 Cs Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w