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

Mạng nơron tích chập và ứng dụng giải bài toán nhận dạng hành động trong một đoạn video ngắn (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 (2.93 MB, 66 trang )

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

LÊ THỊ LỆ DUYÊN

MẠNG NƠ-RON TÍCH CHẬP VÀ ỨNG DỤNG
GIẢI BÀI TOÁN NHẬN DẠNG HÀNH ĐỘNG
TRONG MỘT ĐOẠN VIDEO NGẮN

LUẬN VĂN THẠC SĨ KỸ THUẬT

HÀ NỘI – 2017


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

LÊ THỊ LỆ DUYÊN

MẠNG NƠ-RON TÍCH CHẬP VÀ ỨNG DỤNG
GIẢI BÀI TOÁN NHẬN DẠNG HÀNH ĐỘNG
TRONG MỘT ĐOẠN VIDEO NGẮN

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

NGƯỜI HƯỚNG DẪN KHOA HỌC : TS. NGUYỄN VĂN THỦY

HÀ NỘI – 2017




i

LỜI CAM ĐOAN
Tôi xin 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 tận tình của thầy giáo TS. Nguyễn Văn Thủy. Nội dung của luận văn có tham
khảo và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp chí, bài giảng được
liệt kê trong danh mục các tài liệu tham khảo và được trích dẫn hợp pháp.

Hà Nội, tháng 5 năm 2017
Tác giả luận văn

Lê Thị Lệ Duyên


ii

LỜI CẢM ƠN
Để hoàn thành luận văn tốt nghiệp này, ngoài sự cố gắng, nỗ lực của bản
thân, em xin gửi lời cảm ơn chân thành nhất tới Thầy giáo hướng dẫn TS. Nguyễn
Văn Thủy, người trực tiếp hướng dẫn, chỉ bảo, định hướng và giúp đỡ em hết mực
tận tình trong suốt quá trình làm luận văn tốt nghiệp.
Em cũng xin chân thành cảm ơn các Thầy, Cô trong Học viện Công nghệ
Bưu chính Viễn thông, đặc biệt các Thầy Cô khoa Công nghệ thông tin, khoa Quốc
tế & Đào tạo Sau đại học... đã trực tiếp giảng dạy, truyền đạt cho em nhiều kiến
thức quý báu cho hoạt động công tác thực tiễn của bản thân cũng như đúc kết kiến
thức vào bài luận văn này.
Cuối cùng xin gửi lời cảm ơn chân thành đến Ba Mẹ, Anh Chị Em lớp
M15CQIS02-B cùng tất cả những người thân và bạn bè, những người đã giành

những gì tốt đẹp nhất và luôn là nguồn động lực giúp em vượt qua khó khăn và cố
gắng trong suốt quá trình học tập cũng như thời gian hoàn thiện luận văn tốt nghiệp
để em có được đến ngày hôm nay.
Mặc dù đã rất cố gắng hoàn thành luận văn, nhưng với thời gian và khả năng
có hạn, nên luận văn không thể tránh khỏi những thiếu sót, hạn chế. Kính mong
nhận được sự cảm thông cùng những ý kiến góp ý của quý Thầy, Cô và bạn bè để
em khắc phục được những lỗ hổng kiến thức và bài luận văn tốt nghiệp của Em
được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Hà Nội, tháng 5 năm 2017
Học viên

Lê Thị Lệ Duyên


iii

MỤC LỤC
LỜI CAM ĐOAN ...................................................................................................... i
LỜI CẢM ƠN ........................................................................................................... ii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT..........................................v
DANH MỤC CÁC HÌNH VẼ................................................................................. vi
DANH MỤC CÁC BẢNG .................................................................................... viii
MỞ ĐẦU ....................................................................................................................1
CHƢƠNG 1. NGHIÊN CỨU MẠNG NƠ-RON VÀ MẠNG NƠ-RON TÍCH
CHẬP..........................................................................................................................2
1.1 Mạng nơ-ron ....................................................................................................2
1.1.1 Giới thiệu ....................................................................................................2
1.1.2 Kiến trúc mạng nơ-ron ...............................................................................2
1.1.3 Các tham số chính ......................................................................................3

1.2 Mạng nơ-ron tích chập....................................................................................6
1.2.1 Kiến trúc chung mạng nơ-ron tích chập .....................................................6
1.2.2 Các phân lớp chính .....................................................................................8
1.2.3 Nguyên lý hoạt động của một mạng nơ-ron tích chập điển hình .............11
1.3 Kết luận chƣơng ............................................................................................12
CHƢƠNG 2. BÀI TOÁN NHẬN DẠNG HÀNH ĐỘNG TRONG VIDEO ......13
2.1 Giới thiệu bài toán .........................................................................................13
2.2 Một số khái niệm ...........................................................................................13
2.2.1 Cấu trúc Video ..........................................................................................13
2.2.2 Key - frame................................................................................................14
2.2.3 Phân đoạn ảnh trong video.......................................................................15
2.3 Các phƣơng pháp tiền xử lý dữ liệu cho bài toán nhận dạng ...................16
2.3.1 Trừ giá trị trung bình ................................................................................17
2.3.2 Tiêu chuẩn hóa dữ liệu .............................................................................17
2.3.3 Phân tích thành phần chính (PCA) và quá trình làm trắng (whitening) dữ
liệu .....................................................................................................................18
2.4 Phƣơng pháp Space-time Interest Points (STIP) .......................................21
2.4.1 Phát hiện điểm quan tâm ..........................................................................23
2.4.2 Phân lớp các sự kiện .................................................................................25
2.4.3. Ứng dụng vào diễn tả video .....................................................................27


iv

2.4.4 Kết luận về phương pháp STIP .................................................................28
2.5 Kết luận chƣơng ............................................................................................29
CHƢƠNG 3. ỨNG DỤNG BÀI TOÁN NƠ-RON TÍCH CHẬP CHO NHẬN
DẠNG HÀNH ĐỘNG .............................................................................................30
3.1 Giới thiệu tập dữ liệu ....................................................................................30
3.1.1 Tóm tắt ......................................................................................................30

3.1.2. Chi tiết dữ liệu .........................................................................................30
3.2 Mạng nơ-ron tích chập nghiên cứu ..............................................................34
3.2.1 Nguyên lý hoạt động .................................................................................34
3.2.2 Tham số tối ưu ..........................................................................................36
3.3 Kết quả nhận dạng ........................................................................................37
3.4 Chƣơng trình ứng dụng cho bài toán nhận dạng hành động ....................39
3.4.1 Lựa chọn nền tảng phát triển....................................................................39
3.4.2 Thành phần giao diện chương trình ứng dụng .........................................39
3.5 Kết luận chƣơng ............................................................................................45
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .............................................................46
DANH MỤC TÀI LIỆU THAM KHẢO ...............................................................47
PHỤ LỤC 1 : GIỚI THIỆU PHẦN MỀM CAFFE .............................................49
PHỤ LỤC 2: HƢỚNG DẪN CÀI ĐẶT PHẦN MỀM CAFFE ...........................51
PHỤ LỤC 3: CÁCH CẤU HÌNH MẠNG NƠ-RON TÍCH CHẬP DÙNG
CÔNG CỤ CAFFE ..................................................................................................53


v

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

ANN

Artificial Neural Network


BVLC

Berkeley Vision and Learning
Center

Mạng nơ-ron hay mạng nơ-ron
nhân tạo
Trung tâm học tập và tầm nhìn
Berkeley

CNNs

Convolutional Neural
Network

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

CNN-3D

ConvNets 3 dimensional

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

CUDA

Compute Unified Device
Architecture
Central Processing Unit

Kiến trúc thiết bị tính toán hợp

nhất
Bộ xử lý trung tâm

Fully Connected

Lớp kết nối đầy đủ

GPU

Graphics Processing Unit

Bộ xử lý đồ họa

IDT

Improving dense trajectories

Quỹ đạo dày đặc

MBH

Motion Boundary Histogram

Biểu đồ vùng chuyển động

PCA

Principal Component Analysis Phân tích thành phần chính

CPU

FC

Processing Elements

Thành phần xử lý (nơ-ron)

STIP

Space-time Interest Points

Điểm quan tâm không gian-thời
gian

RELU

Rectified Linear Unit

Lớp chuyển đổi

SVM

Support vector machine

Máy hỗ trợ vecto

PE


vi


DANH MỤC CÁC HÌNH VẼ
Số hiệu
Tên hình vẽ

hình vẽ

Trang

1-1

Hai mạng nơ-ron hình học

2

1-2

Kiến trúc tổng quát của mạng nơ-ron nhân tạo

3

1-3

Sơ đồ truyền tín hiệu của các tham số mạng nơ-ron

3

1-4

Hàm tổng của một nơ-ron và nhiều nơ-ron


5

1-5

Kiến trúc hoạt động của mạng nơ-ron tích chập

7

1-6

Tính tích chập với bộ lọc (filter)

8

1-7

Tính toán với phương pháp Maxpooling

10

1-8

Nguyên lý hoạt động của một mạng nơ-ron tích chập

11

2-1

Mô hình cấu trúc của video


14

2-2

Minh họa kết quả phân đoạn video

15

2-3

Kênh tiền xử lý dữ liệu phổ biến

17

2-4

PCA/Làm trắng

20

2-5

Minh họa bài toán biến đổi với các hình ảnh CIFAR-10

20

Kết quả của việc phát hiện điểm quan tâm không gian-thời
2-6

gian nhất trong một dãy bóng đá khi cầu thủ đánh đầu quả

bóng

2-7
2-8
2-9

2-10

2-11

22

Điểm quan tâm không gian-thời gian đối với chuyển động của
các chân của một người đi bộ

24

Điểm quan tâm cho một dãy với động tác vẫy tay

24

Các điểm quan tâm được phát hiện đối với dãy của những
người đi bộ

26

Các láng giềng không gian – thời gian nội vùng của các điểm
quan tâm tương ứng với bốn cụm cluster cư trú nhiều nhất

26


Sự phối chọn các chức năng dữ liệu không gian – thời gian với
các chức năng mô hình

28


vii

3-1

Các khung mẫu cho 6 lớp hành động của UCF101

30

3-2

Các lớp hành động của UCF101

32

Số lượng clip cho mỗi lớp hành động. Việc phân phối thời
3-3

lượng clip được minh họa bởi các màu sắc

33

3-4


Kiến trúc hoạt động của mạng nơ-ron tích chập nghiên cứu

34

3-5

Cấu trúc mạng nơ-ron tích chập 3 chiều (CNN-3D)

35

3-6

Tìm kiếm tham số thời gian cho mạng 3D

37

3-7

Giao diện chạy chương trình XAMPP trên Ubuntu

39

3-8

Giao diện chạy chương trình mạng nơ-ron tích chập 3D

40

3-9


Giao diện chính của chương trình ứng dụng

41

3-10

Giao diện truy nhập vào chương trình nhận dạng

41

3-11

Giao diện ban đầu của chương trình nhận dạng hành động

42

3-12

Giao diện chọn tải video hành động Biking để nhận dạng

42

3-13

Giao diện nhận dạng hành động Biking

43

Giao diện chọn tải video hành động ApplyLipstick để nhận
3-14


dạng

43

3-15

Giao diện nhận dạng hành động ApplyLipstick

44

Giao diện chọn tải video hành động BabyCrawing để nhận
3-16

dạng

44

3-17

Giao diện nhận dạng hành động BabyCrawing

45


viii

DANH MỤC CÁC BẢNG
Số hiệu bảng


Tên bảng

Trang

3-1

Tóm tắt các đặc tính của UCF101

33

3-2

Nhận dạng hành động trên UCF101

38


1

MỞ ĐẦU
Đa phương tiện trên Internet đã và đang phát triển nhanh chóng dẫn đến số
lượng những video được chia sẻ mỗi phút ngày càng tăng. Bản chất của video là
một thông tin phương thức truyền thông đặc biệt với nhiều loại tin tức và có can
nhiễu phức tạp, ví dụ như chuyển động máy ảnh, hình nền hỗn độn, hoặc điều kiện
chiếu sáng khác nhau v.v.. Với sự bùng nổ thông tin, việc hiểu và phân tích những
đoạn video này cho các mục đích khác nhau như tìm kiếm, giới thiệu, xếp hạng v.v.
là cần thiết. Bài toán nhận dạng hành động trong video là một trong những bài toán
cơ bản của thị giác máy tính với nhiều ứng dụng khác nhau như giám sát, lập mối
quan hệ, phục hồi, đến tương tác giữa con người và máy tính.
Những năm gần đây, chúng ta đã chứng kiến được nhiều thành tựu vượt bậc

trong ngành Thị giác máy tính (Computer Vision). Các hệ thống xử lý ảnh lớn như
Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng
thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone
giao hàng tự động. Bài toán nhận dạng hoạt động video là bài toán khó đã được
nghiên cứu từ lâu, nhưng gần đây mới có nhiều kết quả khả quan do sự phát triển
mạnh mẽ của công nghệ. Đặc biệt, các thao tác video quy mô lớn cũng là vấn đề
mang tính cấp thiết hiện nay.
Có nhiều phương pháp được sử dụng để nhận dạng hành động trong video,
trong đó Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một
trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được
những hệ thống thông minh với độ chính xác cao như hiện nay. Được sự hướng dẫn
tận tình của thầy giáo TS. Nguyễn Văn Thủy và với mong muốn học một công nghệ
nhận dạng hành động mới, đồng thời có ứng dụng thực tiễn trong nghành công tác
của bản thân. Em đã mạnh dạn chọn đề tài “Mạng nơ-ron tích chập và ứng dụng
giải bài toán nhận dạng hành động trong một đoạn video ngắn” để nghiên cứu.
Với phương pháp này, tôi kỳ vọng sẽ đạt kết quả tốt hơn các nghiên cứu trước đây.
Nội dung bài luận văn bao gồm 3 chương:
Chƣơng 1: Nghiên cứu mạng nơ-ron và mạng nơ-ron tích chập
Chƣơng 2: Bài toán nhận dạng hành động trong video
Chƣơng 3: Ứng dụng bài toán nơ-ron tích chập cho nhận dạng hành động.


2

CHƢƠNG 1. NGHIÊN CỨU MẠNG NƠ-RON VÀ MẠNG
NƠ-RON TÍCH CHẬP
1.1 Mạng nơ-ron
1.1.1 Giới thiệu
Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN), gọi tắt là mạng nơron, là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ
nơ-ron sinh học. Nó được tạo lên từ một số lượng lớn các phần tử (gọi là nơ-ron)

kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể
thống nhất để giải quyết một vấn đề cụ thể nào đó. Một mạng nơ-ron nhân tạo được
cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu,...) thông qua
một quá trình học từ tập các mẫu huấn luyện. Về bản chất học chính là quá trình
hiệu chỉnh trọng số liên kết giữa các nơ-ron sao cho giá trị hàm lỗi là nhỏ nhất.

1.1.2 Kiến trúc mạng nơ-ron
Kiến trúc mạng nơ-ron là tập hợp các nơ-ron được kết nối trong một đồ thị
không tuần hoàn. Các đầu ra của một số nơ-ron có thể trở thành đầu vào của các nơron khác. Mô hình mạng nơ-ron thường được tổ chức thành các lớp nơ-ron riêng
biệt. Đối với các mạng nơ-ron tiêu chuẩn, loại lớp phổ biến nhất là lớp kết nối đầy
đủ (FC - Fully Connected), trong đó các nơ-ron giữa hai lớp gần kề được kết nối
hoàn toàn theo từng cặp, nhưng các nơ-ron trong một lớp đơn không được kết nối.
Hình 1-1 dưới đây là hai mạng nơ-ron hình học hai lớp và ba lớp:

Hình 1-1. Hai mạng nơ-ron hình học [23]


3

Trong hình 1-1, bên trái là một mạng nơ-ron 2 lớp (một lớp ẩn với 4 nơ-ron
và một lớp đầu ra với 2 nơ-ron), và ba đầu vào còn bên phải là một mạng nơ-ron 3
lớp với ba đầu vào, hai lớp ẩn với 4 nơ-ron trên từng lớp và một lớp đầu ra.

Hình 1-2: Ví dụ kiến trúc tổng quát của mạng nơ-ron nhân tạo (Artificial
Neural Network - ANN) [21]

Kiến trúc chi tiết của mạng nơ-ron được mô tả như hình 1-2, trong đó
Processing Elements (PE) của ANN gọi là nơ-ron, mỗi nơ-ron nhận các dữ liệu vào
xử lý chúng và cho ra một kết quả ra duy nhất. Kết quả xử lý của một nơ-ron có thể
làm đầu vào cho các nơ-ron khác.

Kiến trúc chung của một ANN gồm 3 thành phần đó là lớp đầu vào (Input
Layer), lớp ẩn (Hidden Layer) và lớp đầu ra (Output Layer) (xem hình 1-1, 1-2).
Trong đó, lớp ẩn (Hidden Layer) gồm các nơ-ron, nhận dữ liệu input từ các nơ-ron
ở lớp trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo, trong một
ANN có thể có nhiều Hidden Layer.

1.1.3 Các tham số chính

Hình 1-3: Sơ đồ truyền tín hiệu của các tham số mạng nơ-ron [21]


4

Inputs: Là các tín hiệu vào của nơ-ron, mỗi đầu vào tương ứng với 1 thuộc
tính (attribute) của dữ liệu (patterns). Ví dụ như trong ứng dụng của ngân hàng xem
xét có chấp nhận cho khách hàng vay tiền hay không thì mỗi đầu vào là một thuộc
tính của khách hàng như thu nhập, nghề nghiệp, tuổi, số con,…
Output: Là tín hiệu đầu ra của một nơ-ron, với mỗi nơ-ron sẽ có tối đa là
một đầu ra. Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ như với
bài toán xem xét chấp nhận cho khách hàng vay tiền hay không thì output là yes
(cho vay) hoặc no (không cho vay).
Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng
của một ANN, nó thể hiện mức độ quan trọng (độ mạnh) của dữ liệu đầu vào đối
với quá trình xử lý thông tin (quá trình chuyển đổi dữ liệu từ Layer này sang layer
khác). Quá trình học (Learning Processing) của ANN thực ra là quá trình điều chỉnh
các trọng số (Weight) của các input data để có được kết quả mong muốn.
Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input
được đưa vào mỗi nơ-ron (phần tử xử lý PE). Hàm tổng của một nơ-ron đối với n
input được tính theo công thức (1) sau:


(1)
Hàm tổng đối với nhiều nơ-ron trong cùng một Layer:

(2)
Hàm tổng của một nơ-ron cho biết khả năng kích hoạt (Activation) của nơron đó còn gọi là kích hoạt bên trong (internal activation). Các nơ-ron này có thể
sinh ra một output là đầu vào cho các layer tiếp theo. Mối quan hệ giữa Internal
Activation và kết quả (output) được thể hiện bằng hàm chuyển đổi (Transfer
Function). Bộ tổng thường dùng để tính tổng của tích các đầu vào với trọng số liên
kết của nó.


5

Hình 1-4: Hàm tổng của một nơ-ron và nhiều nơ-ron [21]
Transformation (Transfer) Function (Hàm chuyển đổi): dùng để giới hạn
phạm vi đầu ra của mỗi nơ-ron. Nó nhận đầu vào là kết quả của hàm tổng và
ngưỡng.

Việc lựa chọn Transfer Function có tác động lớn đến kết quả của ANN. Hàm
chuyển đổi phi tuyến được sử dụng phổ biến trong ANN là sigmoid (logical
activation) function.

(3)
Công thức (3) mô tả hàm chuyển đổi phi tuyến, trong đó :


6

YT: Hàm chuyển đổi
Y: Hàm tổng

Hàm Sigmoid Function cho kết quả thuộc khoảng [0,1] nên còn gọi là hàm chuẩn
hóa (Normalized Function).
Kết quả xử lý tại các nơ-ron (Output) đôi khi rất lớn, vì vậy transfer function
được sử dụng để xử lý output này trước khi chuyển đến layer tiếp theo. Đôi khi thay
vì sử dụng Transfer Function người ta sử dụng giá trị ngưỡng (Threshold value) để
kiểm soát các output của các nơ-ron tại một layer nào đó trước khi chuyển các
output này đến các Layer tiếp theo. Nếu output của một nơ-ron nào đó nhỏ hơn
Threshold thì nó sẽ không được chuyển đến Layer tiếp theo.

1.2 Mạng nơ-ron tích chập
Những năm gần đây, chúng ta đã chứng kiến được nhiều thành tựu vượt bậc
trong ngành Thị giác máy tính (Computer Vision). Các hệ thống xử lý ảnh lớn như
Google, Facebook, hay Amazon đã đưa vào sản phẩm của mình những chức năng
thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone
giao hàng tự động.
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một
trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được
những hệ thống thông minh với độ chính xác cao.
Mạng nơ-ron tích chập tương tự như mạng nơ-ron được giới thiệu trong các
phần trước, chúng được tạo thành từ các nơ-ron có trọng số và sai số. Mỗi một nơron nhận một số đầu vào, thực hiện nhân chập và tùy chọn sau đó với một hàm phi
tuyến tính. Mạng nơ-ron tích chập được áp dụng khá nhiều trong các bài toán nhận
dạng như nhận dạng vật thể trong ảnh, nhận dạng chữ viết tay (chuyển đổi chữ viết
trong hình ảnh thành văn bản thô trong máy tính), nhận dạng vật thể 3D, xử lý tiếng
nói, xử lý ngôn ngữ tự nhiên, …. với độ chính xác cao.

1.2.1 Kiến trúc chung mạng nơ-ron tích chập
Mô hình mạng nơ-ron tích chập ra đời đã được áp dụng nhiều trong các bài
toán nhận dạng. Mạng nơ-ron truyền thống không cho kết quả tốt đối với các dữ



7

liệu như hình ảnh. Chính sự liên kết đầy đủ các node mạng với nhau tạo nên những
hạn chế cho mô hình mạng nơ-ron truyền thống. Một sự khó khăn khác là dữ liệu
hình ảnh có kích thước khá lớn, ví dụ một tấm ảnh xám có kích thước 32×32
(pixels) sẽ cho ra vector đặc trưng có 1024 chiều, còn đối với ảnh màu cùng kích
thước sẽ là 32x32x32 (3072) chiều. Điều này cũng có nghĩa là cần tới 3072 trọng số
nối giữa lớp vào và một node ở lớp ẩn kế tiếp. Số lượng trọng số sẽ càng nhân rộng
hơn nữa nếu số lượng node trong lớp ẩn tăng lên. Như vậy chỉ với một bức ảnh nhỏ
(32×32) thì cũng cần đến một mô hình khá đồ sộ. Điều này khiến cho việc thao tác
với các ảnh có kích thước lớn hơn trở nên khó khăn.
Một điều nữa là việc liên kết một cách đầy đủ các điểm ảnh vào một node
trong mạng có vẻ là dư thừa vì sự phụ thuộc lẫn nhau giữa các điểm ảnh xa nhau là
không nhiều mà chủ yếu là sự phụ thuộc giữa các điểm lân cận với nó. Dựa trên tư
tưởng này mạng nơ-ron tích chập (Convolutional Neural Network - CNNs) ra đời
với một kiến trúc khác so mới mạng truyền thống. Thay vì toàn bộ ảnh nối với một
node thì chỉ có một phần cục bộ trong ảnh nối đến một node trong lớp tiếp theo. Dữ
liệu hình ảnh thông qua các lớp của mô hình này sẽ được “học” ra các đặc trưng để
tiến hành phân lớp một cách hiệu quả.
Về cơ bản mô hình mạng nơ-ron tích chập bao gồm các lớp sau: lớp
Convolutional, lớp chuyển đổi (RELU - Rectified Linear Unit), lớp Pooling, lớp
Fully Connected. Sự sắp xếp về số lượng và thứ tự giữa các lớp này sẽ tạo ra những
mô hình khác nhau phù hợp cho các bài toán khác nhau.

Hình 1-5: Kiến trúc hoạt động của mạng nơ-ron tích chập [23]

Mô hình mạng CNNs với các lớp như trên được mô tả ở hình 1-5. Trong
hình này, đầu vào là hình ảnh một chiếc thuyền, sau khi qua các lớp cho kết quả đầu



8

ra là véc tơ ứng với nhãn hành động tương ứng. Ở đây nhãn đầu ra có giá trị cao
nhất là boat (0.94) chính là hình ảnh thuyền.

1.2.2 Các phân lớp chính
1.2.2.1 Lớp Convolutional
Lớp này chính là nơi thể hiện tư tưởng ban đầu của mạng nơ-ron tích chập.
Thay vì kết nối toàn bộ điểm ảnh, lớp này sẽ sử dụng một bộ các bộ lọc (filters) có
kích thước nhỏ so với ảnh (thường là 3×3 hoặc 5×5) áp vào một vùng trong ảnh và
tiến hành tính tích chập giữa bộ filter và giá trị điểm ảnh trong vùng cục bộ đó. Bộ
filter sẽ lần lượt được dịch chuyển theo bước trượt (stride) chạy dọc theo ảnh và
quét toàn bộ ảnh.

Hình 1-6: Tính tích chập với bộ lọc (filter) [20]

Xét ví dụ trình bày ở hình 1-6 với một bức ảnh 32×32 và một filter 3×3, ta sẽ
có kết quả là một tấm ảnh mới có kích thước 32×32 (với điều kiện đã thêm padding
vào ảnh gốc để tính tích chập cho các trường hợp filter quét ra các biên cạnh) là kết
quả tích chập của filter và ảnh. Với bao nhiêu filter trong lớp này thì ta sẽ có bấy


9

nhiêu lớp ảnh tương ứng mà lớp này trả ra và được truyền vào lớp tiếp theo. Các
trọng số của filter ban đầu sẽ được khởi tạo ngẫu nhiên và sẽ được học dần trong
quá trình huấn luyện mô hình.

1.2.2.2 Lớp chuyển đổi RELU – Rectified Linear Unit
Lớp này thường được cài đặt ngay sau lớp Convolutional và sử dụng hàm

kích hoạt giá trị cực đại và f(x) = max(0,x). Nói một cách đơn giản, lớp này có
nhiệm vụ chuyển toàn bộ giá trị âm trong kết quả lấy từ lớp Convolutional thành giá
trị 0. Ý nghĩa của cách cài đặt này chính là tạo nên tính phi tuyến cho mô hình. Có
rất nhiều cách để khiến mô hình trở nên phi tuyến như sử dụng các hàm kích hoạt
sigmoid, tanh, … nhưng hàm f(x) = max(0,x) dễ cài đặt, tính toán nhanh, hiệu quả
và được sử dụng rộng rãi.

1.2.2.3 Lớp Pooling
Lớp này sử dụng một cửa sổ trượt quét qua toàn bộ ảnh dữ liệu, mỗi lần trượt
theo một bước trượt (stride) cho trước. Khác với lớp Convolutional, lớp Pooling
không tính tích chập mà tiến hành lấy mẫu (subsampling). Khi cửa sổ trượt trên
ảnh, chỉ có một giá trị được xem là giá trị đại diện cho thông tin ảnh tại vùng đó
(giá trị mẫu) được giữ lại. Các phương thức lấy phổ biến trong lớp Pooling là
MaxPooling (lấy giá trị lớn nhất), MinPooling (lấy giá trị nhỏ nhất) và
AveragePooling (lấy giá trị trung bình).
Nguyên lý hoạt động của lớp Pooling được mô tả trong hình 1-7. Xét một
ảnh có kích thước 32×32 và lớp Pooling sử dụng filter có kích thước 2×2 với bước
trượt stride = 2, phương pháp sử dụng là MaxPooling. Filter sẽ lần lượt duyệt qua
ảnh, với mỗi lần duyệt chỉ có giá trị lớn nhất trong 4 giá trị nằm trong vùng cửa sổ
2×2 của filter được giữ lại và đưa ra đầu ra. Như vậy sau khi qua lớp Pooling, ảnh
sẽ giảm kích thước xuống còn 16×16 (kích thước mỗi chiều giảm 2 lần).


10

Hình 1-7: Tính toán với phƣơng pháp MaxPooling [20]

Lớp Pooling có vai trò giảm kích thước dữ liệu. Với một bức ảnh kích thước
lớn qua nhiều lớp Pooling sẽ được thu nhỏ lại tuy nhiên vẫn giữ được những đặc
trưng cần cho việc nhận dạng (thông qua cách lấy mẫu). Việc giảm kích thước dữ

liệu sẽ làm giảm lượng tham số, tăng hiệu quả tính toán và góp phần kiểm soát hiện
tượng overfitting.

1.2.2.4 Lớp FC – Fully Connected
Lớp này tương tự với lớp trong mạng nơ-ron truyền thống, các giá trị ảnh
được liên kết đầy đủ vào node trong lớp tiếp theo. Sau khi ảnh được xử lý và rút
trích đặc trưng từ các lớp trước đó, dữ liệu ảnh sẽ không còn quá lớn so với mô hình
truyền thống nên ta có thể sử dụng mô hình truyền thống để tiến hành nhận dạng.
Tóm lại, lớp fully-connected đóng vai trò như một mô hình phân lớp và tiến hành
dựa trên dữ liệu đã được xử lý ở các lớp trước đó.


11

1.2.3 Nguyên lý hoạt động của một mạng nơ-ron tích chập điển hình

Hình 1-8: Nguyên lý hoạt động của 1 mạng nơ-ron tích chập [19]

Một mạng nơ-ron tích chập được hình thành bằng cách ghép các lớp: lớp
Convolutional, lớp chuyển đổi (RELU- Rectified Linear Unit), lớp Pooling, lớp
Fully Connected lại với nhau. Hình 1-8 trình bày kiến trúc mạng nơ-ron tích chập
cho bài toán nhận dạng chữ. Mô hình bắt đầu với lớp Convolutional. Lớp RELU
thường luôn được cài đặt ngay sau lớp Convolutional hoặc thậm chí kết hợp cả hai
lớp này thành một lớp. Các lớp tiếp theo có thể là Convolutional hay
Pooling(Subsampling) tùy theo kiến trúc mà ta muốn xây dựng. Cuối cùng sẽ là lớp
fully-connected để tiến hành phân lớp. Để xem mô hình này hoạt động như thế nào
ta có thể xét một kiến trúc sau đây:
Conv1 (with RELU) – Pooling – Conv2 (with RELU) – Pooling – FC
Lấy một hình ảnh đầu vào cần nhận dạng có kích thước 32×32 như sau:


Ảnh đầu ra của lớp Convolution và lớp Pooling được áp dụng tính theo công thức:
+ Lớp Convolution: Input: NxN; FxF: kích thước bộ lọc; S: bước trượt cho ra
ma trận đầu ra có kích thước Output= [(N-F)/S+1]


12

+ Lớp Pooling: ảnh Input đầu vào kích thước: W1 x H1 x D1; FxF: kích thước
bộ lọc; S: bước trượt cho ra đầu ra Output: W2 x H2 x D2 với W2 = {[(W1 - F)/S]+1};
H2 = {[H1 - F)/S]+1}; D2 = D1
Hình ảnh sẽ được đưa vào lớp Conv1 (Convolutional kết hợp RELU) với bộ
lọc (filter) có kích thước 5x5, áp dụng bước trượt 2, mỗi filter sẽ được dùng để tính
tích chập với ảnh và cho ra một ảnh kết quả tương ứng là C1 có kích thước 28x28.
Mỗi ảnh trên đều có kích thước tương ứng là 28x28. Sau đó, cả 28 ảnh này
đều được cho qua lớp Pooling, sử dụng bộ lọc kích thước 2x2, bước trượt 2 ta được
kết quả đầu ra sẽ là S2 ảnh có kích thước 14x14.
Tiếp tục dữ liệu sẽ đi vào lớp Conv2. Tương tự như Conv1, ảnh sẽ được tính
tích chập với filter và trả ra kết quả ảnh đầu ra C2 có kích thước 10x10. Lớp Pooling
tiếp theo sẽ tiếp tục giảm kích thước của ảnh xuống còn 5x5. Với kích thước đủ nhỏ
như vậy, lớp Fully-connected tiếp theo sẽ xử lý và đưa ra kết quả phân lớp hay kết
quả nhận dạng.

1.3 Kết luận chƣơng
Chương này tôi đã nghiên cứu và trình bày tổng quan về mạng nơ-ron và
mạng nơ-ron tích chập bao gồm định nghĩa, kiến trúc, các tham số hay các phân lớp
chính, nguyên lý hoạt động… của mạng.


13


CHƢƠNG 2. BÀI TOÁN NHẬN DẠNG HÀNH ĐỘNG
TRONG VIDEO
2.1 Giới thiệu bài toán
Trong nhiều thập kỷ qua, video đã được nghiên cứu bởi cộng đồng dùng máy
tính với nhiều vấn đề khác nhau như nhận dạng hành động, phục hồi video, phát
hiện bất thường… Nhận dạng hành động trong video là một trong những vấn đề cơ
bản của thị giác máy tính trong một diện ứng dụng rộng, xếp loại từ giám sát, lập
mối quan hệ và phục hồi, đến tương tác con người và máy tính.
Tuy nhiên, video là một thông tin phương thức truyền thông sâu sắc với
nhiều loại và bản chất phức tạp, ví dụ, phương sai trong lớp gây ra bởi chuyển động
máy ảnh, hình nền hỗn độn, điều kiện chiếu sáng và v.v. Một video được mô tả bởi
một cấu trúc cấp bậc với nhiều cấp, bao gồm từ nhỏ đến lớn, một khung hình đơn,
những khung hình liên tiếp (chuyển động), một đoạn clip ngắn, và toàn bộ video.
Do đó, bài toán nhận dạng hành động trong video là một bài toán khó, đã thu
hút sự chú ý của các nghiên cứu sâu. Có rất nhiều phương pháp nhận dạng hành
động trong video, trong chương này, tôi tìm hiểu một số khái niệm như cấu trúc của
video, phân đoạn ảnh trong video… và một phương pháp nhận dạng hành động
trong video tiêu biểu là phương pháp Space-time Interest Points (STIP).

2.2 Một số khái niệm
2.2.1 Cấu trúc Video
Video được cấu thành từ một tập liên tiếp các khung hình - frame, còn được
gọi là ảnh, ghi nhận lại các hình ảnh quan sát được của các sự kiện xảy ra trong một
khoảng thời gian. Có hai dạng tín hiệu video thông dụng là: tín hiệu tuần tự (analog)
và tín hiệu video số (digital).
Mô hình cấu trúc một chuỗi video bao gồm các thành phần sau (Hình 2 - 1):
• Frame - khung hình là thành phần cơ bản trong chuỗi video. Mỗi khung hình
tương ứng với một ảnh trong thế giới thực tại một thời điểm xác định.



14

• Shot là một dãy các khung hình liên tiếp được camera ghi nhận không có sự ngắt
quãng nào xảy ra. Shot là một đơn vị cơ bản để xây dựng phân tích nội dung video.
• Các shot liên tiếp nhau được kết hợp lại thành một cảnh (scene) dựa trên nội
dung.
• Tất cả các scene tạo thành một chuỗi video.

Hình 2 - 1: Mô hình cấu trúc của video [18]

2.2.2 Key - frame
Key - frame là một đặc trưng tóm tắt được dùng để mô tả nội dung nổi bật,
chính yếu của một chuỗi video, nó được xem như là một đại diện của một chuỗi
những khung hình liên tục trong một thời gian của video. Các frame khác và key frame có sự khác nhau nhỏ hơn một ngưỡng cho trước. Việc truy xuất và chỉ mục
hóa video thường rất hay sử dụng key - frame vì nó có khả năng giảm được một
lượng dữ liệu lớn trùng lặp trong video.
Có nhiều phương pháp xác định key - frame khác nhau, nhưng chúng tựu
chung dựa trên sự so sánh ảnh của từng cặp khung hình.


15

2.2.3 Phân đoạn ảnh trong video
Có rất nhiều khái niệm khác nhau về phân đoạn video. Tổng quát, phân đoạn
video là một quá trình chia một chuỗi các khung hình thành các vùng ngữ nghĩa sao
cho mỗi vùng có thể được xem như một đối tượng ngữ nghĩa độc lập.

Hình 2 - 2: Minh họa kết quả phân đoạn video [18]

Có hai hình thức phân đoạn video là phân đoạn theo thời gian và phân đoạn

theo không gian. Mục đích của phân đoạn theo thời gian là để xác định các vùng
trong khung hình mà ở đó xảy ra sự di chuyển của các đối tượng. Phân đoạn theo
không gian mục đích là để chia khung hình thành các vùng ngữ nghĩa theo một tiêu
chuẩn cho trước. Một vài đặc trưng thông dụng được sử dụng để đưa ra các tiêu
chuẩn trong phân đoạn theo không gian như sự di chuyển, màu sắc, kết cấu, các tính
chất hình học... Các đặc trưng khác nhau và chuẩn đồng nhất khác nhau dẫn đến kết
quả khác nhau trên cùng một dữ liệu. Chẳng hạn, phân đoạn dựa trên màu, phân
đoạn dựa trên cấu trúc, phân đoạn dựa trên sự di chuyển thường có kết quả các bản
đồ phân đoạn khác nhau.
• Phân đoạn dựa trên màu sử dụng bản đồ màu hoặc các kĩ thuật phân tích
đặc trưng trong không gian màu để chia khung hình thành các vùng đồng nhất về
màu. Tiếp theo là quá trình trộn vùng dựa trên thông tin di chuyển từ sự ước lượng
di chuyển.
• Phân đoạn di chuyển (hay còn được gọi là phân đoạn dòng sáng) là
phương pháp phân đoạn bằng cách phân lớp các điểm ảnh trong mỗi khung hình


×