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