Skip to main content

This package helps extract i3D features with ResNet-50 backbone given a folder of videos

Project description

Hello, I am Hao Vy Phan. I have develop this package using ResNet-50 to convert a video into an extracted i3D features numpy file.

Update: * Version 0.3.2: Fix bug of searching for video files. Now it looks for extensions .webm, .avi, .wmv, .mp4, .m4v, .m4p inside folder datasetpath.

* Version 0.3.1.1: The function can receive directly the path to just 1 video, if multiplefiles is set False.

Overview

Input: a directory which store 1 or more videos.

Output: 1 or many .npy files (extracted i3D features). Each features file is shaped n/16 * 2048 where n is the number of frames in the video

If there is a problem installing or implementing this package, please do not hesitate to contact me via my email. I am pleased to have people use my product.


Usage

Installation

(python3.8) Before installing my package, please install these pakages:

pip install torchvision-0.11.2+cu113-cp38-cp38-win_amd64.whl
pip install torchaudio-0.10.1+cu113-cp38-cp38-win_amd64.whl
pip install torch-1.10.1+cu113-cp38-cp38-win_amd64.whl
pip install opencv_python-4.5.5-cp38-cp38-win_amd64.whl

You can find the wheels here: https://download.pytorch.org/whl/cu113/torch_stable.html * Opencv-Python==4.5.5

* torch==1.10.1+cu113

* torchaudio==0.10.1+cu113

* torchvision==0.11.2+cu113

After 4 above packages, to install i3dFeatureExtraction package into your Python environment, run this code on your terminal:

pip install i3dFeatureExtraction

Implementing

The main function of this package is FeatureExtraction which converts a directory of videos into numpy feature files.

from i3dFeatureExtraction import FeatureExtraction
FeatureExtraction.generate(
    datasetpath="directory/of/input/videos",
    outputpath = "directory/to/store/output/numpy/files",
    pretrainedpath = "path/to/i3D/pretrained/weight",
    sample_mode = "oversample/center_crop"
    multiplefiles = True/False
)
  • datasetpath (REQUIRED): path to videos.

  • If multiplefiles is True (default), the datasetpath is the path to a directory which contains 1 or more videos.

  • If multiplefiles is False, the datasetpath is the path to a video.

  • outputpath (optional, default: “output/”): the proccessed numpy feature files would be stored in this directory.

  • pretrainedpath (optional, default: “pretrained/”): the path of the pretrained i3d weight. If the weight is not existed, it will be downloaded and created manually.

  • sample_mode (optional, default: “oversample/”) receive “oversample” or “center_crop”. If oversample, each frame will be cropped and flipped to be turned into 10 frames.


Structure of this package

I am not good at drawing UML diagram but I hope this image helps illustrate the package’s structure.

i3dFeatureExtraction - UML Diagram

Credits

This code is based on the following repositories:

* pytorch-resnet3d

* pytorch-i3d-feature-extraction

* E2E-Action-Segmentation/feature_extraction/

I would like to extend a special thank-you to the original authors of these repositories for providing the foundation on which this implementation is built.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

i3dFeatureExtraction-0.3.3.tar.gz (19.3 kB view hashes)

Uploaded Source

Built Distribution

i3dFeatureExtraction-0.3.3-py3-none-any.whl (20.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page