iDT算法以及dtfv特征编码环境配置

操作系统:ubuntu-14.04.6

opencv版本:2.4.9

ffmpeg版本:2.4.3

一、iDT算法环境配置

虚拟机安装ubuntu-14.04系统,镜像文件下载地址:https://mirrors.163.com/ubuntu-releases/14.04/

注意:先安装opencv2再安装ffmpeg

1、安装opencv2

(1)下载opencv2 https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download

(2)安装依赖项

sudo apt-get install build-essential
安装依赖包
sudoapt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
安装可选包
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

 (3)编译

cd opencv-2.4.9
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install

 (4)添加动态库信息

cd /usr/local/lib
ls
可查看到以下信息
libopencv_calib3d.so           libopencv_flann.so          libopencv_legacy.so           libopencv_ocl.so              libopencv_ts.a
libopencv_calib3d.so.2.4       libopencv_flann.so.2.4      libopencv_legacy.so.2.4       libopencv_ocl.so.2.4          libopencv_video.so
libopencv_calib3d.so.2.4.9     libopencv_flann.so.2.4.9    libopencv_legacy.so.2.4.9     libopencv_ocl.so.2.4.9        libopencv_video.so.2.4
libopencv_contrib.so           libopencv_gpu.so            libopencv_ml.so               libopencv_photo.so            libopencv_video.so.2.4.9
libopencv_contrib.so.2.4       libopencv_gpu.so.2.4        libopencv_ml.so.2.4           libopencv_photo.so.2.4        libopencv_videostab.so
libopencv_contrib.so.2.4.9     libopencv_gpu.so.2.4.9      libopencv_ml.so.2.4.9         libopencv_photo.so.2.4.9      libopencv_videostab.so.2.4
libopencv_core.so              libopencv_highgui.so        libopencv_nonfree.so          libopencv_stitching.so        libopencv_videostab.so.2.4.9
libopencv_core.so.2.4          libopencv_highgui.so.2.4    libopencv_nonfree.so.2.4      libopencv_stitching.so.2.4    pkgconfig
libopencv_core.so.2.4.9        libopencv_highgui.so.2.4.9  libopencv_nonfree.so.2.4.9    libopencv_stitching.so.2.4.9  python2.7
libopencv_features2d.so        libopencv_imgproc.so        libopencv_objdetect.so        libopencv_superres.so         python3.4
libopencv_features2d.so.2.4    libopencv_imgproc.so.2.4    libopencv_objdetect.so.2.4    libopencv_superres.so.2.4
libopencv_features2d.so.2.4.9  libopencv_imgproc.so.2.4.9  libopencv_objdetect.so.2.4.9  libopencv_superres.so.2.4.9

 执行命令

sudo vim /etc/ld.so.conf

文件末尾添加:/usr/local/lib

保存文件,退出后执行

sudo ldconfig

 系统重启,然后执行

cd /etc
sudo ldconfig -v >temp.so.txt && cat temp.so.txt|grep opencv

 

 (5)指定头文件位置

sudo vim /etc/profile

 末尾添加:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

 保存文件后执行:

pkg-config --cflags opencv
会看到以下提示:
-I/usr/local/include/opencv -I/usr/local/include

 说明opencv安装成功。

2、安装ffmpeg

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next 
sudo apt-get update 
sudo apt-get install ffmpeg

 查看ffmpeg版本

ffmpeg -version

 

3、下载IDT源码

IDT算法源码下载:http://lear.inrialpes.fr/people/wang/download/improved_trajectory_release.tar.gz

解压文件

tar -zcvf improved_trajectory_release.tar.gz
cd improved_trajectory_release
make

编译成功后,会生成release文件夹

执行:

./release/DenseTrackStab ./test_sequences/person01_boxing_d1_uncomp.avi | gzip > out.features.gz
vimdiff out.features.gz ./test_sequences/person01_boxing_d1.gz

 会看到特征对比结果

 如果在使用DenseTrackStab中想查看特征的可视化效果,可修改improved_trajectory_release/DenseTrackStab.cpp第10行,

int show_track = 0

 将show_trac改为1,然后重新编译,再执行:

./release/DenseTrackStab ./test_sequences/person01_boxing_d1_uncomp.avi | gzip > out.features.gz

 即可看到如下效果:

二、dtfv特征编码环境配置

后续的特征编码采用dtfv代码运行,dtfv下载地址:https://github.com/chensun11/dtfv

1、编译vl_feat

下载地址:https://www.vlfeat.org/download/

根据dtfv的说明

  选择0.9.17版本,下载 vlfeat-0.9.17.tar.gz

 解压文件

tar -zcvf vlfeat-0.9.17.tar.gz
cd vlfeat-0.9.17
make

 编译成功后:

sudo vim ~/.bashrc
末尾添加
export VLROOT=/home/yxm/vlfeat-0.9.17
保存后执行
source ~/.bashrc
声明路径
sudo vim /etc/ld.so.conf
末尾添加
/home/yxm/vlfeat-0.9.17/bin/glnxa64
sudo ldconfig
验证安装结果
vim test.cpp

 test.cpp写入代码:

#include <vl/generic.h>
#include "vl/sift.h"
 
int main()
{
    VL_PRINT("Hello world!");
    return 0;
}

 gcc编译

g++ test.cpp -I$VLROOT -L$VLROOT/bin/glnxa64/ -lvl

会在当前目录生成a.out,执行以下会在控制台看到“Hello world!”

说明vlfeat安装成功。

2、编译dtfv

将vlfeats/bin/glnx64中的libvl.so文件拷贝到dtfv/src/vl文件夹中,然后make

vim /etc/ld.so.conf
末尾添加
/home/yxm/dtfv-master/src/vl
/home/yxm/dtfv-master/src/alglib
sudo ldconfig

3、运行dtfv

修改源码/home/yxm/dtfv-master/script/extract_fv.py的参数dtBin、fvBin、tmpDir、pcaList、codeBookList,如图:

 修改/home/yxm/dtfv-master/data/ucf.pca.lst和/home/yxm/dtfv-master/data/ucf.codebook.lst文件,将内容的路径改为绝对路径:

 进入/home/yxm/dtfv-master/script/目录,在目录下创建一个文件videolist,文件中填写视频文件的绝对路径

同时创建一个test文件夹,然后执行:

dtfv使用python2,所以执行命令:
python extract_fv.py videolist /home/yxm/dtfv-master/script/test/ 2

 执行成功后,即可在test文件夹下得到:

my.avi.hof.fv.txt
my.avi.hog.fv.txt
my.avi.mbhx.fv.txt
my.avi.mbhy.fv.txt
my.avi.traj.fv.txt

然后可以尝试使用libsvm跑一下分类结果,待续...

参考网址:

https://blog.csdn.net/gulaixiangjuejue/article/details/86152598

https://blog.csdn.net/baidu_31959555/article/details/80763758

https://blog.csdn.net/sherry_gp/article/details/50914757

https://blog.csdn.net/Cheese_pop/article/details/78621301

https://blog.csdn.net/h_372101/article/details/108059348

posted @ 2021-03-08 10:44  盛世芳华  阅读(456)  评论(5编辑  收藏  举报