poria72 / Action

Action Recognition Project(Matlab)
2 stars 0 forks source link

Action Recognition Using Temporal Partitioning of Motion Information

This Repository is Implementation Code of Proposed Method in Action Recognition Using Temporal Partitioning of Motion Information. Please Cite This Paper When Using This Information.

Abstract

In this paper, a temporal representation method for video action recognition is proposed. Since the intrinsic property of the video signal is its temporal variation, the optical flow image is calculated to show short-term motion. In order to present a low complexity action recognition method, pre-trained large-scale image datasets networks are utilized for feature extraction. For video level representation pyramid pooling time series is considered since the short-term variation can be captured and form the fixed-size long-term features. In addition, to solve the information missing problem through long videos, a simple video level representation using temporal partitioning are proposed too. The experimental results of the proposed methods illustrate an acceptable performance both in first and third-person action recognition.

Prerequisites

This Code Runs On MATLAB R2016b and in CPU Mode. To run This Code You Will Need Some Toolbox and Library. Please Install Following Steps in Order:

  1. MatConvNet, CNNs for MATLAB and vlfeat:

    MatConvNet is a MATLAB toolbox implementing Convolutional Neural Networks (CNNs) for computer vision applications. It is simple, efficient, and can run and learn state-of-the-art CNNs. Many pre-trained CNNs for image classification, segmentation, face recognition, and text detection are available. Go To This Link and Install MatConvNet and vlfeat. DON'T REMMEMBER TO ADD INSTALATION FOLDER TO MATLAB PATH. vlfeat Will Be Installed During MatConvNet Instaltion. Our Version is: matconvnet-1.0-beta23 , vlfeat-0.9.20

  2. Pre-Trained CNN:

    We Used imagenet-vgg-f as The Pre-Trained CNN For Feature Extraction. Download and Copy it to The Root Folder of Project.

  3. MMRead

    In Order To Read Video Frames, We Used mmread MATLAB Library. You Can Download it Here.

  4. LIBSVM

    LIBSVM is an integrated software for support vector classification, (C-SVC, nu-SVC), regression (epsilon-SVR, nu-SVR) and distribution estimation (one-class SVM). It supports multi-class classification. This Library and it's Documentation Are Available in This Link. Our Version is: libsvm-3.22

  5. Optical Flow Extraction Library:

    Optical Flow Extraction is a Bottleneck In This Code, So We Used an Dence Optical Flow Extraction Implemented in C++ by C. Liu. Download This Library From Here and Compile It Using It's Description(You Will Need a C++ Compiler in This Step That Can Be VisualStudio C++ Compiler of MinGW).

How To Use

After Install Libraries, Clone This Repository into a Folder. Your Dataset Should Be Placed in Root Folder By This Ordering:

For Example:

Main.m, getSettings.m Are The All Files That You Need.

In Order to Run The Code, Firstly Initialize Variables in getSettings.m Based On Guides in Comments, Then Run Main.m.