Coder Social home page Coder Social logo

victer's Introduction

ViCTer: A Semi-supervised Video Character Tracker

[News]: We have now have improved version of ViCTer which integrates optical flow to the model for a much better performance. More information will come sooner.

[News]: The paper ViCTer: A Semi-supervised Video Character Tracker is accepted by Journal Machine Learning with Applications, and is open-access online here.

Introduction

This repository contains the source code for the paper ViCTer: A Semi-supervised Video Character Tracker

Video character tracking problem refers to tracking certain characters of interest in the video and returning the appearing time slots for those characters. ViCTer is a novel model for address this problem by combining our proposed semi-supervised face recognition network with a multi-human tracker. We collect a dataset for the video character tracking problem, Character Face in Video (CFIV), which can support various experiments for evaluating video character tracker performance. Our proposed model can achieve 70% $\sim$ 80% average intersection-over-union tracking accuracy on this dataset.

Installation

git clone --recurse-submodules https://github.com/Zilinghan/ViCTer
cd ViCTer
conda create -n victer python=3.8
conda activate victer
pip install -r requirements.txt

Download Dataset

Download the dataset CIFV for running the experiment from the IEEEDataport, and put it under datasets in the following structure:

datasets
   |——————vct1.zip
   └——————vct2.zip
   └——————...
   └——————vct10.zip

Then go to the datasets folder and run the given script to unzip files and download videos.

cd datasets
chmod +x data.sh
./data.sh

Tracking

Note: For getting the tracking accuracy on different videos, replace vct2 below to corresponding vctx.

python run.py --source datasets/vct2/vct2.mp4           # source video to track
              --face-folder datasets/vct2/face          # folder of face images of characters to be tracked
              --model-path model/vct2.pth               # path to store the trained recognition model
              --label-folder datasets/vct2/time_slot    # folder containing the ground truth character appearing time slots
              --stride 4                                # detect the movie for every 'stride' frame(s)
              --tracking-method ocsort                  # tracking algorithm (ocsort or strongsort)
              --save-vid                                # use only if you want to save video output

Other Experiments

We have also provide codes for other experiments to evaluate the performance of ViCTer along several dimensions. Those codes are given as jupyter notebooks under the experiments folder.

Face Recognition Accuracy

Embedding Distances

Embedding Clustering

Tracking Results

Citing ViCTer

@article{li2023victer,
  title={ViCTer: A semi-supervised video character tracker},
  author={Li, Zilinghan and Wang, Xiwei and Zhang, Zhenning and Kindratenko, Volodymyr},
  journal={Machine Learning with Applications},
  volume={12},
  pages={100460},
  year={2023},
  publisher={Elsevier}
}

victer's People

Contributors

zilinghan avatar

Stargazers

 avatar  avatar Xiwei Wang avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.