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)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)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)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)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)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)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)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)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)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)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)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)
Trang 1HỌ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
Trang 2PHẦN MỞ ĐẦU
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
Trang 3Đ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
Trang 4CHƯƠ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
Trang 5Connection 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 tnơ-rong 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
Trang 6Hì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
Trang 7Hì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
Trang 8CHƯƠ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
Trang 9Key - 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
Trang 10ma 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
Trang 11Thà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