Real-Time Hyperlapse Creation via Optimal Frame Selection

Daniel Magalhães Moura Neto


Resumo

Videos longos podem ser visualizados mais rapidamente selecionando um frame por segundo por exemplo. Podemos obter um movimento de camera mais suave selecionando frames que mantenham um bom alinhamento e uma boa sobreposição como foi apresentado por Joshi et al no SIGGRAPH 2015 [1]. Este trabalho implementa o algortimo de seleção de frames proposto. Tomando uma velocidade desejada é feita a seleção de frames de obedecendo o critério acima de manter bom alinhamento e boa sobreposição, obtendo dessa forma uma escolha ótima das frames que irão compor o video mais rápido. Após a seleção de frames é desejável realizar a estabilização do video. Os videos de exemplo gerados utilizaram a estabilização disponível no youtube e a disponível no OpenCV em opencv/samples/cpp/videostab.cpp, ambas são implementações do algoritmo proposto por Grundmann et al [2].


Documentação

Para executar o programa é necessário

Instalando o OpenCV

cd ~
mkdir github
cd github
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
cd ~/github/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_DOCS=On -D BUILD_EXAMPLES=On -D PYTHON2_EXECUTABLE=/usr/bin/python2.7 -D PYTHON_INCLUDE_DIR=/usr/include/python2.7 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7 -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so -D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ -D OPENCV_EXTRA_MODULES_PATH=~/github/opencv_contrib/modules -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j7
sudo make install

Instalando NumPy e SciPy

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

Utilizando a aplicação

Executando pelo fonte:
python hyp.py -f filename [<args>]
Executável:
./hyp -f filename [<args>]
-f or --filename
Video input file.
-v or --velocity
Generated video velocity. Default: 10
-o or --output
Generated video file. Default: out_<filename>
-h or --help
Print this help.

Exemplos

Laranjeiras

Original Seleção de frames (algoritmo) e estabilização (opencv)
Seleção de frames (naive) e estabilização (youtube) Seleção de frames (algoritmo) e estabilização (youtube)

IMPA

Seleção de frames (naive) e estabilização (youtube) Seleção de frames (algoritmo) e estabilização (youtube)

Materiais


Referência

[1] Joshi, N., Kienzle, W., Toelle, M., Uyttendaele, M. and Cohen, M.F. 2015. Real-Time Hyperlapse Creation via Optimal Frame Selection. SIGGRAPH página do artigo

[2] Grundmann, M. Kwatra, V. and Essa, I. 2011. Autodirected Video Stabilization with Robust L1 Optimal Camera Paths. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2011) página do artigo