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ĩ)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ĩ)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ĩ)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ĩ)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ĩ)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ĩ)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ĩ)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ĩ)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ĩ)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ĩ)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ĩ)
Trang 1LÊ 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
Trang 2LÊ 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
Trang 3LỜ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
Trang 4LỜ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
Trang 5MỤ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
Trang 62.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
Trang 7DANH 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 Mạng nơ-ron hay mạng nơ-ron
nhân tạo BVLC
Berkeley Vision and Learning Center
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
Kiến trúc thiết bị tính toán hợp nhất
CPU Central Processing Unit Bộ xử lý trung tâm
FC 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
PE 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
gianRELU Rectified Linear Unit Lớp chuyển đổi
SVM Support vector machine Máy hỗ trợ vecto
Trang 81-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-5 Minh họa bài toán biến đổi với các hình ảnh CIFAR-10 20
2-6
Kết quả của việc phát hiện điểm quan tâm không gian-thời
gian nhất trong một dãy bóng đá khi cầu thủ đánh đầu quả
2-7 Điểm quan tâm không gian-thời gian đối với chuyển động của
2-8 Điểm quan tâm cho một dãy với động tác vẫy tay 24
2-9 Các điểm quan tâm được phát hiện đối với dãy của những
2-10 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 2-11 Sự phối chọn các chức năng dữ liệu không gian – thời gian với
Trang 93-1 Các khung mẫu cho 6 lớp hành động của UCF101 30
3-3
Số lượng clip cho mỗi lớp hành động Việc phân phối thời
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
Trang 10DANH MỤC CÁC BẢNG
Số hiệu bảng Tên bảng Trang
Trang 11MỞ ĐẦ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
Trang 12CHƯƠ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 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
nơ-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]
Trang 13Trong 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]
Trang 14Inputs: 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:
Trang 15nơ-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 đó :
Trang 16YT: Hàm chuyển đổi
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ữ
Trang 17liệ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
Trang 18ra 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
Trang 19nhiê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)
Trang 20Hì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 đó
Trang 211.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]
Trang 22+ 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
Trang 23CHƯƠ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
Trang 24• 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
Trang 252.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
Trang 26thành các nhóm sao cho các điểm ảnh thuộc cùng một nhóm sẽ có sự di chuyển giống nhau Những nhóm này có thể có hoặc không có ngữ nghĩa Sau đó, các nhóm này được trộn lại dựa trên thông tin di chuyển có được từ thao tác ước lượng di chuyển
• Ước lượng di chuyển (motion estimation) là quá trình xác định mức độ di chuyển của các điểm ảnh trong khung hình
• Phát hiện sự di chuyển (motion detection) là quá trình xác định các điểm ảnh có sự di chuyển bề mặt So với phân đoạn dựa trên sự di chuyển, phát hiện di chuyển xác định các đường biên tốt hơn và chi phí tính toán thấp hơn
• Phát hiện sự thay đổi (change dectection) là một công cụ phân đoạn theo thời gian nhằm mục đích xác định các thay đổi trong một tập hay một chuỗi ảnh tại hai thời điểm khác nhau
• Kết hợp các phương pháp trên để thống kê được hình nền tĩnh của khung cảnh Từ đó sẽ dễ dàng nhận ra được các đối tượng chuyển động Phương pháp này dựa trên một ý tưởng đơn giản là một phân đoạn ảnh ở trong trạng thái tĩnh trong một khoảng thời gian đủ lâu, thì sẽ được xem như là thành phần của hình nền
• Thông tin di chuyển là một trong những thành phần chính, là đặc trưng quan trọng được sử dụng để phân đoạn video Lý do là:
o Sự di chuyển mang nhiều thông tin về các mối quan hệ không gian - thời gian giữa các đối tượng trong khung hình
o Các tính chất ảnh như cường độ và màu, có một sự tương quan rất cao theo hướng di chuyển, chúng không thay đổi nhiều khi được theo dõi trong cảnh (ví
dụ màu của chiếc xe không thay đổi khi nó di chuyển qua cảnh), và được dùng để loại bỏ thông tin dư thừa theo thời gian
2.3 Các phương pháp tiền 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 một ma trận dữ liệu
X, trong đó giả sử rằng X có kích thước [N x D] (N là số lượng dữ liệu, D là kích thước bài toán)
Trang 272.3.1 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 từ giá trị của dữ liệu ma trận, cho phép chuyển thành dữ liệu có giá trị trung bình bằng 0 trên mỗi thứ nguyên Gọi là giá trị trung bình của ma trận ảnh, theo từng kênh màu Ta có: X = X - cho phép chuyển tâm dữ liệu về
xung quanh giá trị 0
2.3.2 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= 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 Quá trình tiền xử lý này cần thiết khi các tính năng đầu vào có kích thước khác nhau
Hình 2-3: Kênh tiền xử lý dữ liệu phổ biến [22]
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
Trang 282.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
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
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ỏ,
Trang 29tươ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 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
Trang 30Hì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
Quá trình phân tích thành phần chính PCA và làm trắng dữ liệu được minh hoạ sau, sử dụng tập dữ liệu hình ảnh CIFAR-10 Tập huấn luyện của CIFAR-10 có kích thước 50,000 x 3072, trong đó mỗi hình ảnh được mở rộng thành dãy véc-tơ
3072 chiều Chúng ta có thể tính ma trận hiệp phương sai [3072 x 3072] và tính SVD của nó (chi phí rất tương đối cao)
Hình 2-5: Minh họa bài toán biến đổi với các hình ảnh CIFAR-10 [22]
Bên trái: Một tập ví dụ với 49 hình ảnh ThMột tập vtrái: 144 véc-tơ riêng tốt
nhất trong tổng 3072 Những véc-tơ riêng mang phần lớn biến số trong dữ liệu, và chúng ta có thể nhận thấy chúng tương ứng với các tần số thấp trong hình ảnh
Th144 véc-tơ ri: 49 hình ảnh đó được giảm bằng PCA, sử dụng 144 véc-tơ riêng
Trang 31như được biểu thị ở đây Có nghĩa là, thay vì biểu diễn từng hình ảnh như một
véc-tơ 3072 chiều, trong đó mỗi yếu tố là độ sáng của một điểm ảnh cụ thể tại một số vị trí, mỗi hình ảnh trên chỉ được biểu diễn bằng một véc-tơ 144 chiều Để minh họa được thông tin hình ảnh được lấy từ 144 con số, chúng ta phải xoay lại thành cơ sở
“điểm ảnh” của 3072 chiều Do U là một hệ xoay, điều này có thể đạt được bằng cách nhân lên bằng U.transpose()[:144:], và rồi minh họa kết quả 3072 chiều như một hình ảnh Bạn có thể thấy rằng các hình ảnh gần như là các vết nhơ, phản ánh thực tế rằng các véc-tơ riêng tốt nhất ghi lại các tần số thấp hơn Tuy nhiên, phần
lớn các thông tin vẫn được bảo toàn Bên phột: Minh họa của biểu diễn “trắng”,
trong đó các biến qua mỗi một trong 144 thứ nguyên được nén thành các độ dài bằng nhau Ở đây, 144 con số được làm trắng được xoay lại thành ảnh cơ sở điểm ảnh bằng cách nhân với U.transpose()[:144:] Các tần số thấp hơn (mang nhiều biến
số nhất) giờ không còn đáng kể, trong khi các tần số cao hơn (mang tương đối ít các biến số gốc) tang quá mức
Những sai lầm thường gặp Một điều quan trọng cần phải làm trong quá trình
tiền xử lý là bất kỳ thống kê tiền xử lý (ví dụ như giá trị trung bình của dữ liệu) chỉ được tính trên dữ liệu huấn luyện, và sau đó ứng dụng với dữ liệu đánh giá/thử nghiệm Ví dụ, tính giá trị trung bình, trừ nó từ mỗi hình ảnh trong toàn bộ tập dữ liệu và rồi chia tách dữ liệu thành các chia phần huấn luyện/đánh giá/thử nghiệm sẽ
là một sai lầm Thay vào đó, giá trị trung bình chỉ được tính trên dữ liệu huấn luyện
và trừ đều từ tất cả các chia tách (huấn luyện/đánh giá/thử nghiệm)
2.4 Phương pháp Space-time Interest Points (STIP)
Phân tích và diễn tả video là một đề tài 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] Mặc dù hiệu quả đối với nhiều trường hợp, cả hai phương pháp này đều có những hạn chế Tiếp cận luồng quang thường thu nạp chuyển động cấp một và thất bại nếu chuyển động có những thay đổi đột xuất Theo dõi chức năng thường giả định sự xuất hiện liên tục của các mảng hình ảnh và do đó
Trang 32có thể thất bại nếu sự xuất hiện thay đổi, ví dụ, trong trường hợp hai đối tượng trong một hình ảnh hợp nhất hay tách rời
Hình 2-6: Điểm quan tâm không gian - thời gian nhất trong một dãy hình ảnh
bóng đá là khi một cầu thủ đánh đầu quả bóng [9]
Sự kiện được phát hiện tương ứng với sự biến phân không gian – thời gian cao nhất của dữ liệu hình ảnh hay một “góc không gian – thời gian” như được minh họa bằng phần không gian – thời gian bên phải
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ộ Kết quả này đưa vào việc định nghĩa các tính năng cục bộ không gian - thời gian mà nhúng không gian và thời gian cùng nhau Trong trường hợp này:
- Video được coi là khối lượng pixel
- Tính năng không gian - thời gian được đặt tại các điểm nổi bật không gian thời gian được trích xuất với các toán tử điểm quan tâm
- Tương tự như đối với ảnh hai chiều (2D), các cấu trúc điểm quan tâm được tìm kiếm để đượ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 điểm 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
Trang 33góc không gian, mà họ đảo ngược chuyển động trong hai khung liên tiếp (gradient
độ dốc cao)
Chúng được xác định từ vị trí cực đại của một hàm góc được tính cho tất cả các điểm ảnh trên toàn bộ không gian và thời gian
2.4.1 Phát hiện điểm quan tâm
2.4.1.1 Các điểm quan tâm trong miền không gian
Ý tưởng của công cụ dò điểm quan tâm Harris là phát hi c 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
2.4.1.2 Các điểm quan tâm trong không gian – thời gian
Ý 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
2.4.1.3 Các đ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-7, mẫu này đang tiến lên các điểm quan tâm Các điểm phát hiện được định
vị 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-7(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