Tải bản đầy đủ (.pdf) (39 trang)

Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (LV thạc sĩ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.46 MB, 39 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
------------------------------------

TRẦN THANH TUẤN

NHẬN DIỆN HÀNH ĐỘNG CỦA CON NGƯỜI
TRONG VIDEO SỬ DỤNG DEEP LEARNING

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

THÀNH PHỐ HỒ CHÍ MINH –NĂM 2017


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
------------------------------------

TRẦN THANH TUẤN

NHẬN DIỆN HÀNH ĐỘNG CỦA CON NGƯỜI
TRONG VIDEO SỬ DỤNG DEEP LEARNING

Chuyên ngành: HỆ THỐNG THÔNG TIN
Mã số: 60.48.01.04
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. BÙI XUÂN LỘC

THÀNH PHỐ HỒ CHÍ MINH –NĂM 2017



i

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn
của TS.Bùi Xuân Lộc.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai
công bố trong bất kỳ công trình nào khác.
Nội dung của luận văn có tham khảo và sử du ̣ng một số thông tin, tài liệu từ
các nguồ n sách, ta ̣p chí đươ ̣c liệt kê trong danh mu ̣c các tài liệu tham khảo.

Tp. Hồ Chí Minh, ngày 31 tháng 05 năm 2017
Học viên thực hiện luận văn

Trần Thanh Tuấn


ii

LỜI CÁM ƠN
Tôi xin gửi lời cảm ơn chân thành nhất đến Thầy TS. Bùi Xuân Lộc, người
đã tận tình hướng dẫn, hỗ trợ và giúp đỡ tôi rất nhiều trong nghiên cứu luận văn.
Thầy đã đưa ra những định hướng, nhận xét và góp ý quý giá để luận văn này được
hoàn thành tốt nhất.
Kính gửi lời cảm ơn đến quý Thầy, Cô giảng viên đã tận tình giảng dạy và
truyền đạt những kiến thức chuyên môn cần thiết trong quá trình tôi được học tập
tại Học viện Công nghệ Bưu chính Viễn thông – Cơ sở II, Thành phố Hồ Chí Minh.
Xin gửi lời cảm ơn sâu sắc đến Ban giám đốc Học viện Bưu chính Viễn
thông, Cán bộ Phòng Đào tạo của trường đã nhiệt tình giúp đỡ và tạo điều kiện
thuận lợi để tôi có được môi trường học tập tốt và hoàn tất khóa học.

Xin gửi lời biết ơn vô hạn đến gia đình đã không ngừng quan tâm, động viên,
ủng hộ về mặt tinh thần lẫn vật chất trong suốt thời gian tôi tham gia khóa học và
thực hiện luận văn này.
Cảm ơn các anh chị lớp Cao học Hệ thống thông tin khóa 2015 - 2017 đã
giúp đỡ và đồng hành cùng tôi trong những năm tháng học tập tại nhà trường.

Tp. Hồ Chí Minh, ngày 31 tháng 05 năm 2017
Học viên thực hiện luận văn

Trần Thanh Tuấn


iii

MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................i
LỜI CÁM ƠN ............................................................................................................ ii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ................................................v
DANH SÁCH BẢNG ................................................................................................vi
DANH SÁCH CÁC HÌNH VẼ ................................................................................ vii
MỞ ĐẦU .....................................................................................................................1
CHƯƠNG 1 - TỔNG QUAN VỀ DEEP LEARNING VÀ BÀI TOÁN NHẬN
DIỆN HÀNH ĐỘNG TRONG THỊ GIÁC MÁY TÍNH ...........................................3
1.1. Tổng quan về Deep Learning ...............................................................................3
1.1.1. Deep Learning là gì? .........................................................................................3
1.1.2. Mạng nơron nhân tạo ........................................................................................3
1.1.3. Một số ứng dụng của Deep Learning ................................................................4
1.2. Bài toán nhận diện hành động trong thị giác máy tính ........................................5
1.2.1. Tổng quan thị giác máy tính..............................................................................5
1.2.2. Nhận diện hành động của con người .................................................................6

1.3. Mục đích nghiên cứu ............................................................................................8
1.4. Đối tượng và phạm vi nghiên cứu ........................................................................8
1.5. Phương pháp nghiên cứu......................................................................................9
CHƯƠNG 2 - ỨNG DỤNG DEEP LEARNING TRONG NHẬN DIỆN HÀNH
ĐỘNG CON NGƯỜI ................................................................................................10
2.1. Giới thiệu Convolutional Neural Network .........................................................10
2.1.1. Tổng quan ........................................................................................................10
2.1.2. Kiến trúc CNN ................................................................................................10


iv

2.1.3. Lan truyền ngược ............................................................................................11
2.2. Vấn đề Overfitting và Underfitting ....................................................................12
2.2.1. Overfitting và Underfitting .............................................................................12
2.2.2. Cách giải quyết ................................................................................................15
2.3. Các giải thuật Optimization ...............................................................................15
2.3.1. Các giải thuật cơ bản .......................................................................................15
2.3.2. Các giải thuật dựa vào chiến lược lựa chọn Learning Rate ............................17
2.3.3. Lựa chọn giải thuật Optimization nào? ...........................................................18
2.4. Thuật toán CNN trong nhận diện hành động .....................................................18
2.4.1. Thuật toán ........................................................................................................18
2.4.2. Kiến trúc CNN được xem xét nghiên cứu.......................................................20
CHƯƠNG 3 - THỰC NGHIỆM VÀ ĐÁNH GIÁ ...................................................21
3.1. Giới thiệu TensorFlow .......................................................................................21
3.2. Thông tin về bộ dữ liệu ......................................................................................21
3.3. Mô tả phương pháp thực nghiệm .......................................................................22
3.3.1. Môi trường thực nghiệm .................................................................................22
3.3.2. Tiền xử lý video ..............................................................................................22
3.3.3. Quá trình huấn luyện mô hình CNN ...............................................................23

3.4. Kết quả thực nghiệm ..........................................................................................25
3.5. Nhận xét và đánh giá ..........................................................................................26
KẾT LUẬN VÀ KIẾN NGHỊ...................................................................................28
DANH MỤC CÁC TÀI LIỆU THAM KHẢO .........................................................30


v

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt
AI

Tiếng Anh

Tiếng Việt

Artificial Intelligence

Trí tuệ nhân tạo

CNN

Convolution Neural Network

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

CPU

Central Processing Unit


Bộ xử lý trung tâm

GPU

Graphics Processing Unit

Bộ xử lý đồ họa

API

Application Programming Interface

Giao diện lập trình ứng dụng

GD

Gradient Descent

SGD

Stochastic Gradient Descent

ANN

Atificial Neural Network

Mạng nơron nhân tạo

SVM


Support Vector Machine

Máy véc-tơ hỗ trợ

HOG

Histogram of Oriented Gradients

HOF

Histogram of Oriented Optical Flow


vi

DANH SÁCH BẢNG
Bảng 3.1: Số lượng Frame trong các tập dữ liệu của bộ dữ liệu KTH .....................23
Bảng 3.2: Kết quả thực nghiệm.................................................................................25


vii

DANH SÁCH CÁC HÌNH VẼ
Hình 1.1: Minh họa mạng nơron nhân tạo ..................................................................4
Hình 1.2: Phân cấp các phương pháp nhận dạng hành vi của con người [1]..............8
Hình 2.1: Lớp đầu tiên của một CNN .......................................................................11
Hình 2.2: Ví dụ Underfitting .....................................................................................13
Hình 2.3: Ví dụ Fit ....................................................................................................13
Hình 2.4: Ví dụ Overfitting .......................................................................................14
Hình 2.5: Kiến trúc của CNN trong nhận diện hành động con người ......................19

Hình 2.6: Quá trình chập và tổng hợp cực đại ..........................................................19
Hình 2.7: Kiến trúc CNN được xem xét nghiên cứu ................................................20
Hình 3.1: Bộ dữ liệu KTH.........................................................................................22
Hình 3.2: Mô tả chi tiết bộ dữ liệu KTH ...................................................................23
Hình 3.3: Mô hình mạng CNN trong Tensorboard ...................................................24
Hình 3.4: Biểu đồ kết quả thực nghiệm ....................................................................26
Hình 3.5: Confusion Matrix của lần kiểm tra tốt nhất ..............................................26


1

MỞ ĐẦU
Ngày nay, dữ liệu video dễ dàng đươ ̣c ta ̣o ra bởi các thiế t bi ̣ như: điện thoa ̣i
di động, máy tiń h xách tay, máy ảnh kỹ thuật số , các hệ thống camera quan sát
(CCTV)…bên ca ̣nh đó các trang web chia sẻ video cũng không ngừng tăng trưởng
về số lượng lẫn chất lượng.
Bài toán nhận diện hành động của con người trong video đóng góp một phầ n
tự động hóa khai thác tài nguyên dữ liệu nhiề u thông tin này. Các ứng dụng liên
quan đến bài toán nhận diện hành động như:
-

An ninh và các hệ thố ng giám sát truyề n thố ng gồ m ma ̣ng lưới các
camera và đươ ̣c giám sát bởi con người. Với sự tăng lên của camera
cũng như các hệ thố ng này đươ ̣c triể n khai nhiề u điạ điể m, dẫn đế n
vấ n đề hiệu quả và độ chiń h xác của người giám sát khi phải bao quát
hế t toàn bộ hệ thố ng. Nhiệm vu ̣ của thi ̣ giác máy tiń h là tìm ra giải
pháp có thể thay thế hoặc hỗ trơ ̣ người giám sát. Tự động nhận ra các
bấ t thường từ các hệ thố ng giám sát là vấ n đề thu hút khá nhiề u
nghiên cứu. Một ứng du ̣ng liên quan nữa, đó là tìm kiế m đoa ̣n video
hành động “quan tâm” từ cơ sở dữ liệu video lớn đươ ̣c lưu trữ bởi các

hệ thố ng giám sát.

-

Tương tác giữa người và máy vẫn còn nhiề u thách thức, những dấ u
hiệu thi ̣ giác là phương thức quan tro ̣ng nhấ t giao tiế p phi ngôn ngữ.
Khai thác hiệu quả phương thức giao tiế p này: Thông qua cử chỉ, hành
động, hoa ̣t động hứa he ̣n ta ̣o ra thế hệ máy tính tương tác chính xác và
tự nhiên hơn với con người. Một ứng du ̣ng điể n hin
̀ h trong liñ h vực
này là “ngôi nhà thông minh”, phản ứng thông minh với cử chỉ, hành
động của người sử du ̣ng. Tuy nhiên những ứng du ̣ng này vẫn chưa đủ

-

hoàn chin̉ h và vẫn đang thu hút nhiề u nghiên cứu.
Bên ca ̣nh đó nhận diện hành động của con người trong video còn đươ ̣c
ứng du ̣ng trong tóm tắ t, truy vấ n video, phân tić h thể thao.


2

Deep Learning là một chủ đề Trí truệ nhân tạo, tập trung giải quyết các vấn
đề liên quan đến mạng nơron nhân tạo nhằm nâng cấp các công nghệ như nhận diện
giọng nói, thị giác máy tính và xử lý ngôn ngữ tự nhiên…
Đã có nhiều nghiên cứu về bài toán nhận diện hành động của con người
trong video như: nhóm tác giả Karpathy, Toderici, Shetty, Leung, Sukthankar &
Fei-Fei sử dụng CNNs để phân loại Video theo hành động của con người [5], hoặc
nhóm tác giả Ji, Xu, Yang, & Yu sử 3D CNN để nhận diện hành động con người
[4].

Vì lý do đó, luận văn này nghiên cứu ứng dụng Deep Learning vào bài toán
nhận diện hành động của con người trong video, đồng thời đề xuất cải tiến các tham
số đầu vào của thuật toán để tăng hiệu quả nhận diện so với các thuật toán hiện tại.
Nội dung luận văn gồ m 3 chương: Chương 1 giới thiệu tổng quan về deep
learning và bài toán nhận diện hành động trong thị giác máy tính. Chương 2 giới
thiệu ứng dụng deep learning trong nhận diện hành động con người, bao gồm tổng
quan, thuật toán CNN và các giải thuật Optimization trong Deep Learning. Khái
quát về mạng nơron trong xử lý ảnh và nêu kiến trúc mạng CNN được xem xét
trong nghiên cứu. Chương 3 thực nghiệm và đánh giá kiến trúc mạng được nghiên
cứu. Bao gồm mô tả về dữ liệu và giải thuật được nghiên cứu. Cách thực nghiệm
cho các mô hình, sau đó đánh giá độ chính xác của các giải thuật.


3

CHƯƠNG 1 - TỔNG QUAN VỀ DEEP LEARNING
VÀ BÀI TOÁN NHẬN DIỆN HÀNH ĐỘNG
TRONG THỊ GIÁC MÁY TÍNH
1.1. Tổng quan về Deep Learning
1.1.1. Deep Learning là gì?
Deep Learning là một chủ đề Trí truệ nhân tạo (AI) và là một phạm trù nhỏ
của máy học. Deep Learning tập trung giải quyết các vấn đề liên quan đến mạng
nơron nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói, thị giác máy
tính và xử lý ngôn ngữ tự nhiên.
Deep Learning đang trở thành một trong những lĩnh vực quan trọng trong
khoa học máy tính. Chỉ trong vài năm, Deep Learning đã thúc đẩy tiến bộ trong đa
dạng các lĩnh vực như nhận thức sự vật (object perception), dịch tự động (machine
translation), nhận diện giọng nói - đó là những vấn đề từng rất khó khăn với các
nhà nghiên cứu trí tuệ nhân tạo.


1.1.2. Mạng nơron nhân tạo
Trong công nghệ thông tin, mạng nơron nhân tạo là một hệ thống các chương
trình và cấu trúc dữ liệu mô phỏng cách vận hành của não người. Một mạng nơron
như vậy thường bao gồm một lượng lớn các vi xử lý hoạt động song song, mỗi vi
xử lý chứa đựng một vùng kiến thức riêng và có thể truy cập vào các dữ liệu trong
bộ nhớ riêng của mình.


4

Hình 1.1: Minh họa mạng nơron nhân tạo

Trong mạng nơron nhân tạo (ví dụ hình 1.1), các nơron chính là các node
(node là đơn vị nơron trong mạng nơron nhân tạo – mỗi chiếc máy tính trong mạng
nơron có thể được xem như 1 node) được kết nối với nhau trong một mạng lưới lớn.
Bản thân từng node này chỉ trả lời được những câu hỏi hết sức cơ bản chứ không hề
thông minh, nhưng khi được gộp chung với nhau thì chúng lại có sức mạnh xử lý
được cả những tác vụ khó. Và điều quan trọng ở đây là bằng những thuật toán phù
hợp, chúng ta có thể dạy và huấn luyện được chúng.

1.1.3. Một số ứng dụng của Deep Learning
1.1.3.1. Hệ thống gợi ý trên các nền tảng
Các nền tảng lớn hiện nay như Facebook, Amazon, Netflix,... đều có hệ
thống gợi ý (recommend) rất mạnh giúp tăng đáng kể độ tương tác của người dùng.
Cụ thể là chúng dựa trên các dữ liệu người dùng phát sinh ra khi dùng để gợi ý thêm
những sản phẩm họ sẽ thích (trên các nền tảng mua sắm), những bộ phim họ sẽ
muốn xem (vd. như trên Netflix), gợi ý các bài quảng cáo/được tài trợ (trên
Facebook) hay các khóa học người học quan tâm (trên các nền tảng học online).



5

1.1.3.2. Nhận diện hình ảnh
Mục tiêu của công nghệ nhận diện ảnh là nhận biết và xác định các đối tượng
trong ảnh cũng như hiểu được nội dung và ngữ cảnh trong đó. Công nghệ nhận diện
hình ảnh cũng được đưa vào Facebook để gợi ý người dùng tag mặt bạn bè hay ứng
dụng vào khoa học tội phạm và điều tra.

1.1.3.3. Xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) là một nhánh
của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người. Trong
trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì nó
liên quan đến việc phải hiểu ý nghĩa ngôn ngữ-công cụ hoàn hảo nhất của tư duy và
giao tiếp. Một số ứng dụng của xử lý ngôn ngữ tự nhiên như: nhận dạng chữ viết
tay, nhận dạng tiếng nói, dịch tự động, tìm kiếm thông tin, khai phá dữ liệu.

1.2. Bài toán nhận diện hành động trong thị giác máy tính
1.2.1. Tổng quan thị giác máy tính
Thị giác máy tính (Computer Vision) là một lĩnh vực đã và đang rất phát
triển. Khái niệm thị giác máy tính có liên quan tới nhiều ngành học và hướng
nghiên cứu khác nhau. Từ những năm 1970 khi mà năng lực tính toán của máy tính
ngày càng trở nên mạnh mẽ hơn, các máy tính lúc này có thể xử lý được những tập
dữ liệu lớn như các hình ảnh, các đoạn phim thì khái niệm và kỹ thuật về thị giác
máy tính ngày càng được nhắc đến và nghiên cứu nhiều hơn cho tới ngày nay. Hiện
tại lĩnh vực được các chuyên gia đánh giá là vẫn còn “non nớt” và có rất nhiều sự
thay đổi trong thời gian tới.

1.2.1.1. Thế nào là thị giác máy tính
Thị giác máy tính bao gồm lý thuyết và các kỹ thuật liên quan nhằm mục
đích tạo ra một hệ thống nhân tạo có thể tiếp nhận thông tin từ các hình ảnh thu

được hoặc các tập dữ liệu đa chiều. Đối với mỗi con người chúng ta, quá trình nhận
thức thế giới bên ngoài là một điều dễ dàng. Quá trình nhận thức đó được “học”
thông qua quá trình sống của mỗi người. Tuy nhiên với các vật vô tri vô giác như


6

như các máy tính, robot… thì điều đó quả thực là một bước tiến rất gian nan. Các
thiết bị ngày nay không chỉ nhận thông tin ở dạng tín hiệu đơn lẻ mà nay còn có thể
có cái “nhìn” thật với thế giới bên ngoài. Cái “nhìn” này qua quá trình phân tích, kết
hợp với các mô hình như máy học, mạng nơron… sẽ giúp cho thiết bị tiến dần tới
một hệ thống nhân tạo có khả năng ra quyết định linh hoạt và đúng đắn hơn rất
nhiều.

1.2.1.2. Ứng dụng của thị giác máy tính
Lĩnh vực nghiên cứu của thị giác máy tính rất rộng, và đặc điểm chung là các
bài toán về thị giác máy tính đều không có một đề bài chung và cách giải duy nhất.
Mỗi giải pháp giải quyết vấn đều được một kết quả nhất định cho những trường hợp
cụ thể.
Một vài lĩnh vực mà Computer Vision được ứng dụng có thể kể tới như sau:
-

Điều khiển tiến trình (ví dụ: trong các robot công nghiệp, hay các thiết
bị, xe tự hành)

-

Phát hiện sự thay đổi (ví dụ: các thiết bị giám sát)

-


Tổ chức thông tin (ví dụ: chỉ số kho dữ liệu các ảnh hoặc chuỗi ảnh
liên tục)

-

Mô hình hoá đối tượng (ví dụ: quá trình kiểm tra trong môi trường
công nghiệp, xử lý ảnh trong y học)

-

Tương tác (đóng vai trò làm đầu vào cho thiết bị trong quá trình tương
tác giữa người và máy)

1.2.2. Nhận diện hành động của con người
Nhận diện hành động của con người là một lĩnh vực nghiên cứu rộng rãi
trong thị giác máy tính. Các ứng dụng của nó bao gồm các hệ thống giám sát, phân
tích video, robot và một loạt các hệ thống có liên quan đến sự tương tác giữa người
và các thiết bị điện tử như giao diện người-máy tính.


7

Nhận diện hành động của con người được phát triển bắt đầu vào đầu năm
1980. Hiện nay, các nghiên cứu chủ yếu tập trung vào việc học và nhận biết các
hành động từ chuỗi video.
Một hành động là một chuỗi các chuyển động cơ thể con người, và có thể
bao gồm nhiều bộ phận cơ thể đồng thời. Từ quan điểm của thị giác máy tính, việc
nhận dạng hành động này là để phù hợp với các quan sát (ví dụ: video) với các mẫu
được xác định trước đó và sau đó gán cho nó một nhãn là loại hành động. Tùy thuộc

vào độ phức tạp, hoạt động của con người có thể được phân loại thành bốn cấp độ:
cử chỉ, hành động, tương tác và hoạt động của nhóm [1], và nhiều nghiên cứu theo
hướng một cấu trúc từ dưới lên về nhận dạng hoạt động của con người. Các phần
chính của hệ thống như vậy bao gồm trích xuất đặc trưng, học tập hành động, phân
loại, nhận dạng hành động và phân đoạn [6]. Một quy trình đơn giản gồm ba bước,
cụ thể là phát hiện của con người hoặc các bộ phận cơ thể, theo dõi, và sau đó nhận
bằng cách sử dụng kết quả theo dõi. Ví dụ, để nhận ra hành động “bắt tay”, cánh tay
và bàn tay của hai người được phát hiện trước tiên và theo dõi để tạo ra một mô tả
không gian-thời gian của chuyển động của họ. Mô tả này được so sánh với các mẫu
hiện có trong dữ liệu huấn luyện để xác định loại hành động. Mô hình này dựa rất
nhiều vào tính chính xác của việc theo dõi, điều này không đáng tin cậy trong
những cảnh lộn xộn.
Nhiều phương pháp đã được đề xuất, và có thể được phân loại theo nhiều
tiêu chí khác nhau như trong bài luận điều tra hiện có. Poppe [6] thảo luận nhận
dạng hành động của con người từ biểu diễn hình ảnh và phân loại hành động riêng
rẽ. Weinland [8] khảo sát các phương pháp cho biểu diễn hành động, phân đoạn và
nhận dạng. Turaga [7] chia vấn đề nhận dạng thành hành động và hoạt động theo độ
phức tạp, và các hướng tiếp cận phân loại theo khả năng của mình để xử lý các mức
độ phức tạp khác nhau. Có nhiều tiêu chí phân loại khác nhau [1], [2], [3]. Trong số
đó, Aggarwal và Ryoo [1] là một trong những tổng kết toàn diện mới nhất và so
sánh của sự tiến bộ quan trọng nhất trong lĩnh vực này. Dựa vào hành động được
nhận dạng từ hình ảnh đầu vào trực tiếp, Aggarwal và Ryoo [1] phân chia các


8

phương pháp nhận dạng thành hai loại chính: phương pháp tiếp cận đơn lớp và
phương pháp tiếp cận phân cấp. Cả hai đều là thêm loại con phụ thuộc vào các
phương pháp biểu diễn đặc trưng và học.


Human
activity
recognition

Singlelayered
approaches

Hierachical
approaches

Space-time
approaches

Space-time
volume

Trajectories

Sequential
approaches

Space-time
features

Exemplarbased

Statistical

Syntatic


Descriptionbased

State-based

Hình 1.2: Phân cấp các phương pháp nhận dạng hành vi của con người [1]

1.3. Mục đích nghiên cứu
Luận văn nhận diện hành động của con người trong video sử dụng Deep
Learning trên cơ sở đề xuất các cải tiến trên các thuật toán Deep Learning trong
nhận diện hành động con người.
Hiện thực hoá thuật toán cải tiến trong luận văn sử dụng thư viện
TensorFlow và ngôn ngữ Python.
Với phương pháp được đề xuất luận văn góp phần nâng cao hiệu quả việc
nhận diện hành động của con người trong video.

1.4. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
Nghiên cứu các vấn đề về nhận diện hành động của con người trong video:
Lịch sử vấn đề, nhận diện hành động của con người, các thuật toán Deep Learning
đã và đang được nghiên cứu.


9

Phạm vi nghiên cứu:
Luận văn tập trung nghiên cứu thuật toán CNN trong Deep Learning để nhận
diện hành động của con người trong video.
Luận văn tiến hành chạy thực nghiệm trên bộ dữ liệu KTH và đưa ra nhận
xét về việc nhận diện hành động của con người trong video sử dụng Deep Learning.


1.5. Phương pháp nghiên cứu
Tìm kiếm, chọn lọc và đọc các tài liệu liệu quan về nhận diện hành động của
con người và các phương pháp nhận diện của các tác giả trong ngoài nước đã và
đang nghiên cứu. Từ đó rút ra các kiến thức cần thiết để hoàn thành nhiệm vụ
nghiên cứu đã đặt ra ở trên.
Xây dựng chương trình minh họa để huấn luyện, kiểm tra trên bộ dữ liệu
mẫu.

Kết luận chương
Chương này đã trình bày tổng quan về thị giác máy tính, nhận diện hành
động của con người và Deep Learning. Đồng thời nêu rõ mục tiêu, đối tượng, phạm
vi và phương pháp nghiên cứu của luận văn.


10

CHƯƠNG 2 - ỨNG DỤNG DEEP LEARNING
TRONG NHẬN DIỆN HÀNH ĐỘNG CON NGƯỜI
2.1. Giới thiệu Convolutional Neural Network
2.1.1. Tổng quan
Convolutional Neural Network (CNN) bao gồm một hoặc nhiều lớp chập
(thường với một bước lấy mẫu con) và sau đó theo sau bởi một hoặc nhiều hơn các
lớp kết nối như trong một mạng nơron đa lớp chuẩn. Kiến trúc của một CNN được
thiết kế để tận dụng lợi thế của cấu trúc 2 chiều của một hình ảnh đầu vào (hoặc đầu
vào 2 chiều khác như một tín hiệu tiếng nói). Điều này đạt được với các kết nối cục
bộ và trọng số ràng buộc theo một số hình thức tổng hợp mà kết quả là các đặc
trưng không thay đổi. Một lợi ích khác của CNN là dễ dàng huấn luyện hơn và có ít
thông số so với các mạng kết nối đầy đủ với cùng một số đơn vị ẩn.

2.1.2. Kiến trúc CNN

CNN gồm một số lớp chập và lớp lấy mẫu con tùy chọn, tiếp theo là các lớp
kết nối. Đầu vào cho một lớp chập là một hình ảnh m × m × r, với m là chiều cao và
chiều rộng của hình ảnh và r là số kênh (ví dụ một ảnh RGB có r=3). Lớp chập sẽ
có k bộ lọc có kích thước n × n × q, trong đó n nhỏ hơn kích thước hình ảnh và q có
thể bằng hoặc nhỏ hơn số kênh r. Kích thước của các bộ lọc tăng đến cấu trúc kết
nối cục bộ, trong đó mỗi bộ lọc xoắn với hình ảnh để tạo ra k bản đồ đặc trưng có
kích thước m – n + 1. Mỗi bản đồ được lấy mẫu con đặc trưng với việc hợp nhất
trung bình hoặc lớn nhất trên p × p khu vực lân cận, trong đó phạm vi của p là giữa
2 (cho các hình ảnh nhỏ) và 5 (cho các đầu vào lớn hơn). Trước hoặc sau khi lấy
mẫu con, một bias bổ sung và xích ma phi tuyến được áp dụng cho mỗi bản đồ đặc
trưng.


11

Hình 2.1: Lớp đầu tiên của một CNN

Sau các lớp chập, có một số lớp kết nối đầy đủ. Các lớp kết nối dày đặc
giống với các lớp trong mạng nơron đa lớp chuẩn.

2.1.3. Lan truyền ngược
Cho 𝛿 (𝑙+1) là số sai số của lớp (l + 1) trong mạng với hàm chi phí C(W,b;x,y)
trong đó (W,b) là các tham số và (x,y) là cặp dữ liệu huấn luyện và nhãn. Nếu lớp l
được kết nối dày đặc với lớp (l + 1) thì lỗi của lớp l được tính như sau:
𝑇

𝛿 𝑙 = ((𝑊 (𝑙) ) 𝛿 (𝑙+1) ) . 𝑓 ′ (𝑧 (𝑙) )
và gradient là:
∇𝑊 (𝑙) 𝐶 (𝑊, 𝑏; 𝑥, 𝑦) = 𝛿 (𝑙+1) (𝑎(𝑙) )


𝑇

∇𝑏(𝑙) 𝐶 (𝑊, 𝑏; 𝑥, 𝑦) = 𝛿 (𝑙+1)
Nếu lớp l là lớp chập hoặc lấy mẫu con thì sai số được lan truyền như sau:
(𝑙)

(𝑙) 𝑇 (𝑙+1)

𝛿𝑘 = 𝑢𝑛𝑠𝑎𝑚𝑝𝑙𝑒 ((𝑊𝑘 ) 𝛿𝑘

(𝑙)

) . 𝑓 ′ (𝑧𝑘 )


12

(𝑙)

Trong đó, k là chỉ số của các bộ lọc và 𝑓 ′ (𝑧𝑘 ) là đạo hàm của hàm kích
hoạt. Thao tác unsample phải lan truyền lỗi qua các lớp tổng hợp bằng việc tính
toán lỗi tương cho mỗi đơn vị đến lớp tổng hợp.
Cuối cùng , tính gradient tương ứng cho các bản đồ bộ lọc:
𝑚
(𝑙)

(𝑙+1)

∇𝑊 (𝑙) 𝐶 (𝑊, 𝑏; 𝑥, 𝑦) = ∑(𝑎𝑖 ). 𝑟𝑜𝑡90(𝛿𝑘
𝑘


, 2)

𝑖=1
(𝑙+1)

∇𝑏(𝑙) 𝐶 (𝑊, 𝑏; 𝑥, 𝑦) = ∑(𝛿𝑘
𝑘

)𝑎,𝑏

𝑎,𝑏

Trong đó, a(l) là đầu vào của lớp l, và a(1) là hình ảnh đầu vào. Phép tính
(𝑙)

(𝑙+1)

(𝑎𝑖 ). 𝛿𝑘

là xoắn “hợp lệ” giữa đầu vào thứ i trong lớp l và lỗi tương ứng của bộ

lọc thứ k.

2.2. Vấn đề Overfitting và Underfitting
Sau khi lựa chọn một mô hình phù hợp chẳng hạn Logistic Regression cho
Classification Problem, hay Linear Regression cho Regression Problem ta xây dựng
dự đoán h(x), hàm chi phí C(θ) và tối thiểu hóa hàm chi phí nhiều nhất có thể. Đến
bước này chúng ta sẽ gặp vấn đề với Overfitting và Underfitting.


2.2.1. Overfitting và Underfitting
Xét ví dụ ở Hình 2.2
Hàm h(x) thu được không được tốt, đối với dữ liệu training ta đã thấy được
sai số rõ rệt chứ chưa nói tới việc thử trên dữ liệu mới. Trong trường hợp này vấn
đề chúng ta gặp phải được gọi là Underfitting.


13

Hình 2.2: Ví dụ Underfitting

(Nguồn: )
Để phát triển lên mô hình tốt hơn, ta thử thêm vào một số thành phần đa
thức, chẳng hạn đưa hàm số từ tuyến tính lên bậc cao hơn thì h(x) sẽ có dạng như
sau:

Hình 2.3: Ví dụ Fit


14

(Nguồn: )
Tuy không fit với mọi dữ liệu nhưng nhìn qua hàm h(x) này đi theo đúng xu
hướng của dữ liệu. Nhưng nếu như ta tiếp tục thêm các thành phần đa thức vào h(x),
có thể giúp cho h(x) fit với mọi dữ liệu hay chí ít là phần lớn của chúng, tối thiểu
được hàm chi phi xấp xỉ bằng 0, chẳng hạn:

Hình 2.4: Ví dụ Overfitting

(Nguồn: )

Đúng ra khi hàm chi phí càng thấp, ta phải thu được h(x) tốt hơn, nhưng
trong trường hợp này, rõ ràng h(x) không đi theo xu thế của dữ liệu mà chỉ đơn
thuần fit được nhiều dữ liệu huấn luyện hay nói cách khác khi ta đưa h(x) vào sử
dụng, nó cũng không thể dự đoán tốt được. Trường hợp đơn giản nhất ở đây là khi
bậc của h(x) cao hơn hoặc bằng số lượng dữ liệu huấn luyện. Vấn đề này được gọi
là Overfitting.
Tóm lại, Underfitting là khi mô hình quá đơn giản, không thể giảm thiểu
được đáng kể hàm chi phí nên cũng không thể mô tả được xu hướng của dữ liệu
(còn được gọi là High Bias). Ngược lại Overfitting lại là khi mô hình quá phức tạp,


15

tuy giảm thiểu được đáng kể, thậm chí toàn bộ sai số nhưng cũng không thể mô tả
được xu hướng của dữ liệu (còn được gọi là High Variance).

2.2.2. Cách giải quyết
Với Underfitting thì chỉ đơn thuần là mô hình quá đơn giản, nên ta cần thêm
những thành phần đa thức để nó phức tạp hơn. Nên khi giá trị của hàm chi phí lớn ta
sẽ đẩy bậc của hàm số lên. Dĩ nhiên đẩy lên cao quá ta sẽ gặp vấn đề về hiệu năng
và Overfitting.
Với Overfitting thì công việc lại ngược lại, do mô hình quá phức tạp nên ta
cần giảm bậc của hàm số hay giảm số lượng đặc trưng. Việc giảm đặc trưng ngoài
bỏ bớt những thành phần đa thức, ta còn có thể bỏ bớt những đặc trưng không cần
thiết.
Một cách khác là áp dụng Regularization.

2.3. Các giải thuật Optimization
Thuật toán huấn luyện của rất nhiều mô hình máy học được phát biểu hình
thức dưới dạng một bài toán Optimization, chẳng hạn các mô hình như

linear/logistic regression, ANN, SVM, KMeans… Ý tưởng chung là mỗi mô hình
đều có một tập tham số θ nào đó cần phải được xác định giá trị thông qua quá trình
huấn luyện với dữ liệu và ta cần tìm θ để cực tiểu hóa hàm chi phí C(θ).
Mặc dù lí thuyết optimization về vấn đề này rất đầy đủ với nhiều phương
pháp khác nhau, trong nghiên cứu này trình bày tổng quan về một số giải thuật
Optimization.

2.3.1. Các giải thuật cơ bản
2.3.1.1. Gradient Descent
Để tìm cực trị của

, ta có thể giải phương trình sau:


16

để tìm giá trị của tại điểm cực trị. Cách này chỉ làm được khi có thể tính
toán chính xác đạo hàm bậc nhất của

. Thực tế bằng cách sử dụng hàm hợp lý

(likelihood), lấy đạo hàm để có công thức tường minh của các tham số rồi sử dụng
thuật toán Cực đại hoá kỳ vọng (Expectation Maximization).
Tuy nhiên việc lấy đạo hàm và giải phương trình trên không phải lúc
nào cũng thực hiện được, do đó cần sử dụng các phương pháp tối ưu. Phương pháp
hay sử dụng nhất trong Machine Learning là Gradient Descent.
Gradient descent là từ vị trí hiện tại, ta đi theo chiều giảm của đạo hàm bậc
nhất cho đến khi không thể giảm được nữa. Khi đó ta đã ở một điểm tối ưu cục bộ.
Công thức cập nhật cho Gradient Descent là:


2.3.1.2. Stochastic Gradient Descent
Nhận thấy C là trung bình cộng, và thông thường tập huấn luyện là i.i.d
(independently and identically distributed) nên tại mỗi bước ta có thể cập nhật tham
số với mỗi mẫu trong tập huấn luyện:

với z là mẫu tiếp theo trong tập huấn luyện, hoặc trong các ngữ
cảnh online khi dữ liệu huấn luyện được đưa đến từng mẫu một (có thể vô hạn), và
ta không có trọn vẹn cả tập huấn luyện ngay từ đầu. Một cách để hiểu về SGD là
hướng cập nhật cho tham số là một biến ngẫu nhiên mà kì vọng của nó là hướng cập
nhật tính bởi Gradient Descent. Mặc dù có thêm yếu tố ngẫu nhiên nhưng kết quả
của SGD là tương tự với Gradient descent.
SGD thông thường nhanh hơn Gradient Descent vì cập nhật các tham số
nhiều hơn hẳn. Điều này đặc biệt đúng khi ta có tập huấn luyện lớn hoặc không có
toàn bộ tập huấn luyện ngay từ đầu. Thực tế trong Machine Learning, người ta chỉ
dùng GD khi hàm chi phí không thể viết dưới dạng trung bình như trên.


×