Giter Site home page Giter Site logo

enf_extraction_from_videos's Introduction

Code for Analysis of ENF Signal Extraction From Videos Acquired by Rolling Shutters

This repository contains an implementation of the following paper (DOI: 10.36227/techrxiv.21300960.v1):

Jisoo Choi, Chau-Wai Wong, Hui Su, and Min Wu, "Analysis of ENF signal extraction from videos acquired by rolling shutters," submitted to IEEE Transactions on Information Forensics and Security (T-IFS), under review.

If you used any of the code or the dataset, please cite our paper as listed above

Requirement

Matlab

Preparation

  • If you want to play with the dataset used in the paper, please download the video dataset named 'vids.zip' from the following URL: https://ieee-dataport.org/documents/rolling-shutter-videos-enf-extraction, upzip, and put it under the directory ./code_release/
  • If you want to examine your own video(s), get your own video(s) ready and follow the procedures below
    • Create a folder named 'vids'under the directory ./code_release/
    • Create a folder under the folder 'vids' that should have the same filename as your video to be investigated. For example, your video is named 'iPhoneVideo_sample1.' Then, the folder named 'iPhoneVideo_sample1' is created and located under the directory ./code_release/vids/
    • Put your video under the directory ./code_release/vids/iPhoneVideo_sample1/
    • If you have a power reference signal for your video, name it 'power_YourVideoFileName', i.e., 'power_iPhoneVideo_sample1', and put it under the directory ./code_release/vids/iPhoneVideo_sample1/
    • Create two .txt files named 'nominalFreq' and 'Tro' and put them under the directory ./code_release/vids/iPhoneVideo_sample1/
      1. 'nominalFreq.txt': should contain a nominal ENF where your video was captured, i.e., 50 or 60
      2. 'Tro.txt': should contain the camera read-out time for the device you used for capturing your video
    • For other videos, repeat the processes above

Usage

  • For the dataset used in the paper, open each script file named 'main1_Figs7aedh10.m', 'main2_Fig8.m', and 'main3_Fig7cg.m' and run sequentially each section divided by %%
    • 'main1_Figs7aedh10.m' draws spectrograms and extract ENF signals
      • NOTE: The second section starting with "[step 1]" generates .mat files, which may take some time. If you want to avoid the wait, download the mat file dataset named 'mats.zip' for the video dataset 'vids' from the following URL: https://ieee-dataport.org/documents/rolling-shutter-videos-enf-extraction, upzip it, and put each .mat file into the corresponding directory. For example, the mat file named 'rowSig_iPhoneVideo0.mat' should be put under the directory ./code_release/vids/iPhoneVideo0/
    • 'main2_Fig8.m' quantatively compares two extraction methods
    • 'main3_Fig7cg' compares practical scalar values versus theoretical scalar values for aliased ENF components
  • For your own video(s), the entry point is the script file named 'main1_Figs7aedh10.m'. Run the entire sections in the script to draw spectrograms and extract ENF signals

Contact

Jisoo Choi, email: [email protected]

enf_extraction_from_videos's People

Contributors

cjs2094 avatar

Stargazers

soya avatar

Watchers

 avatar

enf_extraction_from_videos's Issues

A question about the read-out time

Thank you very much for showing the code of the paper. Your work is very creative and the article description is very detailed.
I would like to ask the author if you can share the code of "the vertical phase method" for estimating read-out time, my current research is related to this problem, and I want to find relevant methods through your research, thank you very much!

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.