How to video classification using feature extraction
    11 views (last 30 days)
  
       Show older comments
    
Hello. I want to classify videos using several feature extraction.
I used HOG(histogram of oriented gradients), optical flow as feature extraction.
However, the accuracy of classification is not good. just 60% accuracy.
Could you give some ideas to improve accuracy?
This code is using HOG.
clear all
close all
%// read the video:
list = dir('*.avi')
% loop through the filenames in the list
for k = 1:length(list)
    reader = VideoReader(list(k).name);
    vid = {};
    while hasFrame(reader)
        vid{end+1} = readFrame(reader);
    end
    for i=1:25
        fIdx(i) = i; %// do it for frame 1 ~ 60
        frameGray{i} = rgb2gray(vid{fIdx(i)});
        [featureVector{i},hogVisualization{i}] = extractHOGFeatures(frameGray{i});
    end
end
    X = cell2mat(featureVector');
Accepted Answer
  Shishir Singhal
      
 on 9 Apr 2020
        For video classification, you can use CNN for extracting spatial features. CNN is capable to extract deep features that HOG and other handcrafted feature extraction techniques might not be albe to. Use LSTM for capturing temporal features beacause you also need to have some sequential information between frames in a video.
You can read about CNN and LSTM in links here :
0 Comments
More Answers (0)
See Also
Categories
				Find more on Recognition, Object Detection, and Semantic Segmentation in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!