Tải bản đầy đủ (.pdf) (20 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 (tt)

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.05 MB, 20 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

Chuyên ngành: HỆ THỐNG THÔNG TIN
Mã số: 60.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI - 2017


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG

Ngƣời hƣớng dẫn khoa học: TS. NGUYỄN VĂN THỦY

Phản biện 1: ……………………………………………………………
Phản biện 2: ……………………………………………………………

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: ....... giờ ....... ngày ....... tháng ....... .. năm …….

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông



PHẦN MỞ ĐẦU


2
Đ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.


3

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
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 riêng biệt của nơ-ron.
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). 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.

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


1.1.3 Các tham số chính
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).
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.


4
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).
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).
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.

1.2 Mạng nơ-ron tích chập
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.
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 kiến trúc 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 khác nhau, 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 kiến trúc 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.


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

1.2.2 Các phân lớp chính
- 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.

- Lớp chuyển đổi RELU – Rectified Linear Unit
Lớp này thường được cài đặt ngay sau lớp Convolutional. Lớp này sử dụng hàm kích
hoạt giá trị cực tiểu 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.
- 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).


- Lớp FC – Fully Connected: lớp này đó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 đó.

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-3: Nguyên lý hoạt động của 1 mạng nơ-ron tích chập


6
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 Fullyconnected tiếp theo sẽ xử lý và đưa ra kết quả phân lớp hay kết quả nhận dạng.


7

CHƢƠNG 2. NGHIÊN CỨU VỀ BÀI TOÁN NHẬN DẠNG
HÀNH ĐỘNG TRONG VIDEO
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. 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.1 Một số khái niệm
Cấu trúc Video
Cấu trúc một chuỗi video bao gồm các thành phần sau:
• 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.
• 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


8

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.

Phân đoạn ảnh trong video
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.
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.

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

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.

2.2 Các phƣơng pháp xử lý dữ liệu cho bài toán nhận dạng
Có ba hình thức phổ biến của quá trình tiền xử lý dữ liệu gồm:

- Trừ giá trị trung bình
Là hình thức phổ biến nhất của quá trình tiền xử lý dữ liệu. Nó bao gồm việc trừ giá
trị trung bình qua mỗi tính năng đơn lẻ trong dữ liệu, và có sự trình bày hình học định tâm
đám dữ liệu xung quanh bình phương trên mỗi thứ nguyên. Gọi X là giá trị trung bình của


9
ma trận ảnh, theo từng kênh màu. Ta có: X = X - X cho phép chuyển tâm dữ liệu về xung
quanh giá trị 0.

- Tiêu chuẩn hóa dữ liệu
Quy vào việc bình thường hóa các thứ nguyên dữ liệu để chúng có thể có kích thước
tương đối tương đương. Có hai cách phổ biến để đạt được sự bình thường hóa này. Một là
chia mỗi thứ nguyên cho giá trị phương sai của nó, khi đã lấy 0 làm trung tâm: X = X – X,
X=


. Hình thức khác của quá trình tiền xử lý này là bình thường hóa mỗi thứ nguyên

để giá trị cực tiểu và giá trị cực đại qua các thứ nguyên là tương ứng -1 và 1.

Hình 2 - 3: Kênh tiền xử lý dữ liệu phổ biến

Bên trái: Dữ liệu gốc, dữ liệu đầu vào 2 chiều. Ở giữa: Dữ liệu lấy 0 làm trung tâm
bằng cách trừ các giá trị trung bình trong mỗi thứ nguyên. Đám dữ liệu giờ được lấy trung
tâm quanh bình phương. Bên phải: Mỗi thứ nguyên được tiêu chuẩn hóa bằng cách chia các
thứ nguyên theo phương sai. Đường màu đỏ chỉ ra sự mở rộng của dữ liệu, chúng không có
độ dài bằng nhau ở giữa, nhưng có độ dài bằng nhau bên phải.

- Phân tích thành phần chính (PCA) và quá trình làm trắng (whitening) dữ liệu
Principal Component Analysis - PCA là một hình thức của quá trình tiền xử lý dữ
liệu. Trong quá trình này, dữ liệu trước tiên được lấy trung tâm như đã miêu tả trên. Sau đó,
chúng ta có thể tính toán ma trận hiệp phương sai (covariance) để xác định cấu trúc tương
quan của dữ liệu. Ma trận đó có thể được tính toán sử dụng thư viện Numpy của Python như
sau:
# Assume input data matrix X of size [N x D]
X -= np.mean(X, axis = 0) # zero-center the data (important)
XX = Cov(X,X) = np.dot(XT, X) / X.shape[0] # get the data covariance matrix


10
Thành phần (i,j) của ma trận là giá trị hiệp phương sai giữa chiều i và chiều j của dữ liệu.
Đặc biệt, đường chéo của ma trận chính là phương sai của dữ liệu dạng ma trận X. Ma trận
hiệp phương sai XX là ma trận đối xứng và xác định dương (positive semi-definite). Sau đó,
chúng ta có thể tính thừa số phân mảnh SVD (SVD factorization) của ma trận dự liệu hiệp
tương quan.
U,S,V = np.linalg.svd(cov)

Trong đó các cột U là các véc-tơ riêng (eigenvector) và S là dãy 1 chiều của các giá trị
riêng. Để tách dữ liệu, chúng ta chiếu dữ liệu gốc (nhưng lấy không làm trung tâm) vào hệ
trục có cơ sở là các vector riêng U:
Xrot = np.dot(X, U) # decorrelate the data
Các cột của U là các tập các véc-tơ trực chuẩn (độ dài véc-tơ là 1, và trực giao đối
với nhau), nên chúng có thể được xem là hệ véc-tơ cơ sở. Do đó, việc ánh xạ lên hệ trục mới
tương ứng với quay dữ liệu trong ma trận X sang hệ trục toạ độ mới là các véc-tơ riêng. Một
thuộc tính hay của câu lệnh np.linalg.svd là cho giá trị đầu ra U, với các cột véc-tơ riêng
được sắp xếp theo giá trị riêng của chúng. Chúng ta có thể sử dụng đặc tính này để giảm
kích thước của dữ liệu bằng cách chỉ sử dụng một số véc-tơ riêng đầu tiên, và loại bỏ những
cột sau đó có giá trị riêng nhỏ, tương ứng với việc loại bỏ các chiều không chứa dữ liệu.
Phương pháp này được gọi là phương pháp giảm kích thước dữ liệu dựa trên phân tích các
thành phần chính PCA. Ví dụ là sau khi ta đã tính toán được các vector riêng U, và ta chỉ
cần tập trung vào 100 chiều dữ liệu, ta dùng câu lệnh sau:
Xrot_reduced = np.dot(X, U[:,:100]) # Xrot_reduced becomes [N x 100]
Sau câu lệnh này, chúng ta đã giảm kích thước [N x D] của bộ dữ liệu gốc thành một
kích thước [N x 100] chứa 100 thành phần dữ liệu chứa nhiều dao động nhất. Thông thường,
để tiết kiệm thời gian và không gian tính toán, ta có thể tiến hành huấn luyện các bộ phân
lớp hay mạng nổn trên các tập dữ liệu tối giản dùng phương pháp PCA, mà vẫn đảm bảo
được hiệu năng tốt.
Bài toán biến đổi cuối cùng thường áp dụng thực tiễn là làm trắng dữ liệu. Quá trình
làm trắng thực hiện trên trục toạ độ cơ sở là các vector riêng, bằng cách chia các chiều dữ
liệu cho các giá trị riêng của nó để tiêu chuẩn hoá các chiều dữ liệu. Về mặt hình học thì quá
trình làm trắng dữ liệu sẽ chuyển một dữ liệu đầu vào dạng hàm Gauss đa biến chuyển


11
thành quá trình Gauss có giá trị trung bình bằng 0 và ma trận hiệp phương sai là ma trận đơn
vị. Bước làm trắng được thực hiện trong thực tế dùng hàm sau:
# whiten the data:

# divide by the eigenvalues (which are square roots of the singular values S)
Xwhite = Xrot / np.sqrt(S + 1e-5)
Công thức trên thêm 1e-5 (hoặc một thành phần nhỏ) để tránh trường hợp chia bằng
không. Có một điểm hạn chế của phép biến đổi này là cường điệu hóa đáng kể hỗn loạn
trong dữ liệu, do kéo mở rộng tất cả các chiều dữ liệu (bao gồm những chiều có giá trị
phương sai nhỏ mà hầu hết là nhiễu) Trong thực tiễn điều này có thể giảm nhẹ bằng cách
tăng 1e-5 thành một số lớn hơn.

Hình 2-4: PCA/Làm trắng [22]

Bên trái: Dữ liệu gốc, dữ liệu đầu vào 2 chiều. Ở giữa: Sau khi thực hiện PCA. Dữ
liệu lấy không làm trung tâm và bị xoay tới hệ trục mới dựa trên các vecto cơ sở riêng của
ma trận dữ liệu hiệp phương sai. Bên phải: Mỗi chiều dữ liệu được chia tỷ lệ bởi các trị
riêng, biến ma trận dữ liệu hiệp phương sai thành ma trận đơn vị. Từ khía cạnh hình học,
điều này tương ứng với sự mở rộng và nén dữ liệu thành một Gauss đẳng hướng.

2.3 Phƣơng pháp Space-time Interest Points (STIP)
Phân tích và diễn tả video ngày càng được quan tâm trong Thị giác máy tính và ứng
dụng của nó. Các cách tiếp cận truyền thống đối với việc phân tích chuyển động video chủ
yếu bao gồm 2 phương pháp: sự tính toán luồng quang [10] và theo dõi chức năng [2, 14].
Cả hai phương pháp này mặc dù hiệu quả đối với nhiều thao tác nhưng đều có những hạn
chế khi chuyển động có sự thay đổi đột xuất.
Cách tiếp cận hữu ích và hiệu quả hơn là trích xuất các đặc điểm cục bộ tại các điểm
quan tâm không gian - thời gian và mã hoá thông tin thời gian trực tiếp vào đặc điểm cục
bộ. Tương tự như đối với trường hợp 2D, các cấu trúc điểm quan tâm được tìm kiếm để


12
được ổn định theo xoay, quan điểm, quy mô và thay đổi độ sáng. Bộ phát hiện điểm điểm
không gian - thời gian là phần mở rộng của bộ phát hiện quan tâm 2D kết hợp thông tin thời

gian.
Điểm quan tâm không gian - thời gian (STIP) được đề xuất bởi I. Laptev năm 2005.
Chúng được dựa trên việc phát hiện các góc không gian-thời gian. Các góc không gian thời gian nằm ở khu vực có cường độ hình ảnh cao ở cả ba hướng (x, y, t). Điều này đòi hỏi
rằng các góc không gian - thời gian được định vị ở các góc không gian, mà họ đảo ngược
chuyển động trong hai khung liên tiếp (gradient độ dốc cao).
Phát hiện điểm quan tâm:
- Phát hiện điểm quan tâm miền không gian và miền không gian – thời gian:
Phát hiện điểm quan tâm miền không gian là phát hiện các vị trí trong một hình ảnh
không gian, trong đó các giá trị hình ảnh có sự biến đổi đáng kể về cả hai hướng hình ảnh.
Ý tưởng về các điểm quan tâm trong miền không gian có thể được mở rộng thành
miền không gian - thời gian bằng cách yêu cầu các giá trị hình ảnh trong không gian - thời
gian có các biến đổi lớn hơn trong các chiều không gian và thời gian. Các điểm với những
thuộc tính này sẽ là các điểm quan tâm không gian với vị trí khác biệt trong thời gian tương
ứng với chuyển động không liên tục của hình ảnh trong một miền không gian - thời gian nội
vùng lân cận.
- Phát hiện điểm quan tâm thích nghi tỷ lệ:
Để minh họa sự thực hiện của bộ phát hiện điểm quan tâm không gian - thời gian
thích nghi tỷ lệ, ta quan tâm đến một dãy với một người đi bộ và một hình ảnh gia tốc thay
đổi do chuyển động dao động của các chân. Như chúng ta thấy trong hình 2-2, mẫu này tiến
lên các điểm quan tâm. Các điểm phát hiện được định hóa tốt trong cả không gian và thời
gian và tương ứng với các sự kiện như điểm dừng và bắt đầu bước chân. Từ biểu đồ không
gian – thời gian trong hình 2-2(a), chúng ta cũng có thể theo dõi các tỷ lệ không gian và thời
gian của các thuộc tính được phát hiện tương hợp tương đối với sự mở rộng không gian thời gian của các cấu trúc hình ảnh tương ứng.


13

Hình 2 - 5: Đ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ộ


(a) biểu đồ 3 chiều với mặt ngưỡng của một mẫu chân (từ trên xuống dưới) và các
điểm quan tâm được phát hiện; (b) các điểm quan tâm phủ lên trên các khung hình đơn
trong dãy.
Phân lớp các sự kiện
Các điểm quan tâm được phát hiện có các biến đổi đáng kể của các giá trị hình ảnh
trong láng giềng không gian - thời gian nội vùng. Để phân biệt các sự kiện từ các sự kiện
khác và từ tiếng ồn, một cách tiếp cận là so sánh láng giềng nội vùng và gán các điểm với
các láng giềng tương đương về cùng nhóm các sự kiện. Cách tiếp cận tương tự được chứng
minh thành công trong miền không gian đối với thao tác trình bày hình ảnh [11] đánh chỉ số
[4] và nhận diện [5, 16].
Để phát hiện các sự kiện giống nhau trong dữ liệu, áp dụng cụm cluster k-mean trong
không gian của các toán tử điểm và phát hiện các nhóm điểm với các láng giềng không gian
– thời gian giống nhau. Cụm cluster các láng giềng không gian – thời gian sử dụng để miêu
tả hình ảnh cũng như phát hiện các bộ phận đối tượng cho sự nhận diện không gian [13].
Ứng dụng vào diễn tả video
Các điểm quan tâm không gian - thời gian đã được phân lớp có thể được sử dụng cho
sự diễn tả video, như vấn đề của việc phát hiện người đi bộ và ước tính các tư thế khi nhìn
thấy từ hiện trường bên ngoài. Thao tác như thế này là phức tạp, do sự biến thiên trong sự
xuất hiện của người với sự biến thiên trên nền có thể dẫn đến sự diễn dịch mơ hồ. Chuyển


14
động con người là một tín hiệu mạnh đã được sử dụng để giải quyết sự mơ hồ này trong một
số công việc trước đây. Những cách tiếp cận khác sử dụng các tín hiệu hình ảnh không gian
– thời gian như luồng quang [2] hay mô hình chuyển động.
Ý tưởng của cách tiếp cận này là trình bày cả mẫu và dữ liệu bằng cách sử dụng các
chức năng không gian – thời gian nội vùng và tách bạch và phối chọn mô hình bằng cách
phối chọn các chức năng của nó với các chức năng tương ứng của dữ liệu bên trong một cửa
sổ không gian – thời gian (xem hình 2-3).


Hình 2 - 6: 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

(a) Các chức năng được phát hiện từ dãy dữ liệu trong khoảng đoạn thời gian tương
ứng với ba giai đoạn chu kỳ dáng đi; (b) Các chức năng mô hình cực tiểu hóa khoảng cách
đến các chức năng trong (a); (c) Các chức năng mô hình và các chức năng dữ liệu phủ lên
nhau. Bóng hình ước tính phủ lên khung hình hiện tại xác nhận sự chính xác của phương
pháp.


15

CHƢƠNG 3. ỨNG DỤNG BÀI TOÁN NƠ-RON TÍCH CHẬP CHO
NHẬN DẠNG HÀNH ĐỘNG
3.1 Giới thiệu tập dữ liệu
Tập dữ liệu UCF101 hiện là tập dữ liệu lớn nhất về hành động của con người. Nó bao
gồm 101 lớp hành động, trên 13k clip và 27 giờ dữ liệu video. Cơ sở dữ liệu bao gồm các
đoạn video do người dùng tải lên thực tế có chứa chuyển động của camera và nền lộn xộn.
Theo những nghiên cứu mới nhất hiện nay, UCF101 hiện là tập dữ liệu hành động đầy thử
thách nhất do số lượng lớn các lớp học, số lượng lớn clip và tính chất không hạn chế của các
clip.
Tập dữ liệu UCF101 chia thành 5 loại: tương tác Con người-Đối tượng, Chỉ Động
cơ, Tương tác giữa Con người và Con người, Chơi Nhạc cụ, Thể thao. Các đoạn của một
lớp hành động được chia thành 25 nhóm có chứa 4-7 clip mỗi. Tên của mỗi clip có dạng
sau: v X gY cZ.avi trong đó X, Y và Z đại diện cho nhãn lớp học, nhóm và số clip tương
ứng. Ví dụ, v_ApplyEyeMakeup_g03_c04.avi tương ứng với clip 4 của nhóm 3 của lớp
hành động ApplyEyeMakeup.

3.2 Mạng nơ-ron tích chập nghiên cứu


Hình 3 - 1: Kiến trúc mạng nơ-ron tích chập nghiên cứu

3.2.1 Nguyên lý hoạt động
Mạng được thiết lập để nhận hành động có đầu vào là các đoạn video dự đoán lớp
nhãn thuộc 101 hành động khác nhau. Tất cả các khung hình video được thay đổi sang kích
thước là 128x171. Kích thước là khoảng nửa độ phân giải của các khung trong tập UCF101.
Video được chia thành các đoạn (16 khung hình) không chồng lấn, sau đó được sử dụng làm
đầu vào cho mạng nghiên cứu. Các kích thước đầu vào là 3x16x128x171. Tiếp theo khung
được cắt ngẫu nhiên, cho ra kích thước là 3x16x112x112 clip đầu vào trong quá trình huấn
luyện. Cấu trúc mạng có 8 lớp tích chập và 5 lớp pooling (sau mỗi lớp tích chập là một lớp
pooling), 2 lớp kết nối đầy đủ và một lớp softmax để dự đoán nhãn hành động. Số lượng các
bộ lọc cho 5 lớp tích chập tương ứng từ 1 đến 5 là 64, 128, 256, 512, 512.


16

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

Tất cả các lớp tích chập được ứng dụng với lớp đệm thích hợp (cả về không gian và
thời gian) và khoảng cách bước trượt (stride) là 1. Tất cả các lớp pooling được tổng hợp tối
đa với kích thước 2x2x2 (trừ lớp đầu tiên) với khoảng cách bước trượt là 2. Lớp pooling đầu
tiên có kích thước thời gian 1x2x2 cho phép không ảnh hưởng đến chiều thời gian quá sớm
(không làm giảm số chiều ở miền thời gian). Mỗi lớp kết nối đầy đủ có 4096 kết quả đầu ra.

3.2.2 Tham số tối ưu
Để tìm kiếm một cấu trúc mạng nơ-ron tích chập 3 chiều (CNN- 3D) tốt, thay đổi
tham số thời gian di của lớp tích chập và vẫn giữ tất cả các cài đặt phổ biến cố định như đã
thảo luận ở phần 3.2.1, thử nghiệm với hai loại cấu trúc: 1) Thời gian sâu đồng nhất: tất cả
các lớp tích chập có tham số thời gian giống nhau; 2) Thời gian sâu khác nhau: tham số thời
gian đang thay đổi trên các lớp. Đối với thiết lập đồng nhất, thử nghiệm với 4 mạng có tham

số thời gian d bằng 1, 3, 5 và 7, đặt tên cho các mạng như độ sâu d, trong đó d là chiều sâu
thời gian đồng nhất của chúng, mạng có d = 1 tương đương với việc ứng dụng tích chập 2
chiều (CNN-2D) trên khung hình riêng biệt. Để thiết lập các tham số thời gian khác nhau,
thử nghiệm hai mạng với tham số thời gian các lớp tăng dần: 3-3-5-5-7 và giảm dần: 7-5-53-3 từ lớp tích chập đầu tiên đến lớp thứ năm tương ứng. Tất cả các mạng có cùng kích
thước tín hiệu đầu ra tại lớp pooling cuối cùng, chúng có cùng số lượng các tham số ở các
lớp kết nối đầy đủ.
Số lượng các thông số của chúng chỉ khác nhau ở các lớp tích chập do tham số thời
gian khác nhau. Những khác biệt này khá nhỏ so với hàng triệu các tham số trong các lớp
kết nối đầy đủ. Ví dụ, hai lớp bất kỳ ở trên với tham số thời gian khác biệt là 2, chỉ có 17K
tham số ít hơn hoặc nhiều hơn nhau. Sự khác biệt lớn nhất trong các tham số là giữa mạng
có d = 1 và mạng có d = 7, với d = 7 mạng có 51K nhiều tham số hơn, tuy nhiên chiếm ít
hơn 0,3 % của tổng số 17,5 triệu các tham số của từng mạng. Điều này chỉ ra rằng, các cấu
hình mạng như trên có khả năng học như nhau và sự khác biệt nhỏ về số lượng tham số
không ảnh hưởng đến kết quả học máy.


17

Hình 3 - 3. Tìm kiếm tham số thời gian cho mạng nơ-ron tích chập 3 chiều

Clip nhận dạng hành động chính xác trên thử nghiệm UCF101 split-1 của thiết lập
tham số thời gian khác nhau. Mạng nơ-ron tích chập 2 chiều thực hiện kém nhất và mạng
nơ-ron tích chập 3 chiều với kích thước bộ lọc 3x3x3 thực hiện tốt nhất trong số các mạng
lưới thử nghiệm.
Hình 3-3 trình bày tính chính xác của clip về cấu trúc khác nhau trên thử nghiệm
UCF101 split 1. Biểu đồ bên trái cho thấy kết quả của mạng lưới với tham số thời gian đồng
nhất và biểu đồ bên phải trình bày kết quả tham số thay đổi. Tham số d = 3 thực hiện tốt
nhất trong số các mạng lưới đồng nhất. Tham số d = 1 kém hơn so với các mạng lưới khác
do không có mô hình chuyển động. So với trường hợp tham số thời gian thay đổi, d = 3 thực
hiện tốt nhất, nhưng khoảng cách là nhỏ hơn. Các trường hợp trên là với kích thước 3x3.

Chúng tôi cũng thử với các kích thước lớn hơn 5x5 và với độ phân giải ảnh đầu vào lớn
(240x320), tuy nhiên kết quả đạt được tương tự. Điều này cho thấy 3x3x3 là sự lựa chọn tốt
nhất cho kích thước bộ lọc của mạng nơ-ron tích chập 3 chiều (theo tập dữ liệu nghiên cứu)
và mạng nơ-ron tích chập 3 chiều luôn tốt hơn so với mạng nơ-ron tích chập 2 chiều để
phân loại video. Chúng tôi cũng xác nhận rằng mạng nơ-ron tích chập 3 chiều thực hiện tốt
hơn so với mạng nơ-ron tích chập 2 chiều trên một tập dữ liệu nội bộ quy mô lớn, cụ thể là
I380K.

3.3 Kết quả nhận dạng
Bộ dữ liệu: Đánh giá tính năng mạng nơ-ron tích chập 3 chiều (CNN-3D) trên bộ dữ
liệu UCF101. Bộ dữ liệu bao gồm 13,320 video của 101 loại hành động của con người, sử
dụng cung bậc phân chia thiết lập được cung cấp với số liệu này. Bộ dữ liệu được chia làm 2
phần: một phần cho huấn luyện, và một phần dành kiểm tra hiệu năng của hệ thống nhận
dạng CNN ba chiều (3D).
Hệ thống nhận dạng được huấn luyện từ đầu, với kích thước của mini-batch (số
lượng clips xử lý trong 1 iteration) là 10 clips. Tỉ lệ học máy ban đầu được thiết lập ở giá trị


18
0.003, sau đó được chia cho 10 sau khi vào hết 4 lần số lượng video clips cho quá trình huấn
luyện. Quá trình huấn luyện được dựng lại sau khi lặp quay vòng 16 lần kích thước dữ liệu.
Sau quá trình huấn luyện, hệ thống được kiểm tra trong tập dữ liệu video clips tests.
Kết quả nhận dạng hành động chính xác 78,3%. Chi tiết so sánh với các thuật toán hiện có
trên thế giới được thể hiện trong bảng sau:
Phương pháp
Mạng sâu
Dòng mạng không gian
LRCN
LSTM mô hình hỗn hợp
CNN-3D


Độ chính xác (%)
65.4
72.6
71.1
75.8
78,3

Bảng 3-1. Nhận dạng hành động trên UCF101.

Bảng 3-2 trình bày kết quả CNN-3D so các phương pháp hiện đại nhất hiện nay. Từ
kết quả chính xác trên so với các phương pháp khác, hệ thống nhận dạng hành động CNN3D có khả năng phát hiện khá chính xác thông tin về khuôn dạng và chuyển động.

3.4 Chƣơng trình ứng dụng cho bài toán nhận dạng hành động
3.4.1 Lựa chọn nền tảng phát triển
Ý tưởng của chương trình ứng dụng là xây dựng một website tin tức về nghành đang
công tác, sau đó tích hợp chương trình nhận dạng hành động trên website đó. Sau khi tìm
hiểu, xây dựng được kiến trúc của hệ thống, ta cài đặt hệ thống bằng ngôn ngữ lập trình cụ
thể. Ngôn ngữ lập trình được lựa chọn để xây dựng chương trình ứng dụng là PHP và
Python.

3.4.2 Thành phần giao diện chương trình ứng dụng
Các lệnh thực thi:
- Mở Terminal trong hệ hiều hành Ubuntu, để gõ lệnh:
+ Khởi động phần mềm Xampp: sudo /opt /lampp /lampp start
+ Chạy chương trình nhận dạng hành động trong video:
ls
cd C3D-master
cd examples
cd duyen_web_ActReg

python run_web.py


19
+ Sau đó vào đường dẫn: localhost/addvideo/leduyen.html để truy nhập vào giao diện chính
của chương trình demo ứng dụng và tiến hành nhận dạng hành động.

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Chương trình thực nghiệm nhận dạng hành động trong một đoạn video ngắn với
phương pháp trình bày trong luận văn đã đạt được một số điểm:
- Học được một phương pháp nhận dạng mới với độ chính xác cao.
- Nắm được các đặc điểm của một bài toán nhận dạng nói chung và nhận dạng hành
động trong video nói riêng.
- Tìm hiểu được một số phương pháp nhận dạng hành động trong video, nắm được
ưu nhược điểm của từng phương pháp.
- Demo và thử nghiệm thành công trên bộ dữ liệu mẫu với tỉ lệ nhận dạng chính xác
78,3%.
Hướng phát triển của bài toán:
- Nhận dạng được nhiều hành động hơn nữa trong một video.
- Ứng dụng vào bài toán nhận dạng hành động trong video thu nhận từ dữ liệu
camera trong điều tra tội phạm, giám sát an ninh giao thông…



×