运行iDT算法代码及后续特征编码
来源:互联网 发布:网络言论自由的事例 编辑:程序博客网 时间:2024/06/11 11:59
DT&IDT算法应该算是行为识别领域中经典中的经典了,自从13年提出以来,在HMDB-51和UCF-101等若干个数据库上得到了非常好的效果,虽然DT&IDT算法做不过深度学习,但是由于其算法的有效性,现在大部分都是以“Ours+IDT”的形式呈现在论文里,并且加上了IDT后,结果的确能得到很明显的提升。
具体IDT算法的讲解可以参考博客:行为识别笔记:improved dense trajectories算法(iDT算法)
IDT算法的代码可以在作者的主页上下载,另外作者给出的代码只包括了密集采样+轨迹跟踪+特征提取三个部分,后续的特征编码部分请点击此处下载。
1. 运行IDT算法代码
下载好代码后可以仔细阅读一下Readme
文件,首先需要配置好Opencv和ffmpeg两个库,具体的版本请参考Readme
文件。配置好后就可以在目录下直接make
,编译好的可执行文件在./release/下。
可以运行他的demo视频来看一下是否编译成功:./release/DenseTrackStab ./test_sequences/person01_boxing_d1_uncomp.avi
,如果编译成功的话会在屏幕上打印出一系列的数字,这些就是轨迹特征以及HOG, HOF和MBH特征。
IDT代码只是将各个特征打印了出来,如果需要改成保存到文件的话,更改第248-251行的代码即可:
PrintDesc(iTrack->hog, hogInfo, trackInfo);PrintDesc(iTrack->hof, hofInfo, trackInfo);PrintDesc(iTrack->mbhX, mbhInfo, trackInfo);PrintDesc(iTrack->mbhY, mbhInfo, trackInfo);
另外,在做自己的数据库时,不可能一个视频一个视频的去输入,这时可以写一个vim脚本,来批量运行,可以参考如下代码:
#!/usr/bin/env bashcmd="release/DenseTrackStab"filePath="" #数据存放路径fileType=".txt"function readfile(){ for file in `ls $1` do if [ -d $1"/"$file ] then readfile $1"/"$file else echo $file $cmd $1"/"$file fi done}readfile $filePath
2. 特征编码
后续的特征编码采用了dtfv代码运行,具体可以参考src/中的Readme.rst文件,大致步骤如下:
1. 下载vl_feat并编译
编译好vl_feat工具箱后,将vlfeats/bin/glnx64中的libvl.so文件拷贝到dtfv/src/vl文件夹中,如果拷贝glnx86中的libvl.so后编译时会报错
2. 编译
- 在src文件夹中输入
make
进行编译: 改变路径
在../script/extract_fv.py文件中更改一下几个变量:dtBin、fvBin、tmpDir、pID、pcaList,具体可以参考Readme文件。运行代码
在../data/文件夹中运行:python extract_fv.py [videoList] [outputDir] [totalCores]
。之后会在tmpDir中得到resize之后的视频文件,每个视频将在outputDir文件夹中得到五个文件,分别以[Videoname].avi.[traj|hog|hof|mbhx|mbhy].fv.txt命名。
遇到的bug:
error while loading shared libraries: libvl.so: cannot open shared object file: No such file or directory
【解决方法】LD_LIBRARY_PATH=$LD_LIBRARY_PATH:dtfv-master/src/vl
LD_LIBRARY_PATH=$LD_LIBRARY_PATH: dtfv-master/src/alglib
(注意,路径要输入的是绝对路径)
- 运行iDT算法代码及后续特征编码
- 动作识别:improved dense trajectories(iDT)特征编码—Fisher Vector代码学习
- iDT算法
- iDT算法
- iDT算法
- 行为识别笔记:iDT算法用法与代码解析
- 行为识别笔记:iDT算法用法与代码解析
- 特征选择mRMR算法代码实现及安装下载
- iDT 算法 windows上编译
- idt
- IDT
- IDT
- IDT
- SIFT特征提取代码运行总结
- Base64编码及代码
- (1.1.7)递归算法典型特征及经典递归例子代码实现
- opencv 1.0下运行正常的代码,后续版本不能正常运行
- 特征编码
- 《剑指offer》刷题笔记(时间效率):把数组排成最小的数
- LINUX 动态库编译和使用的注意事项
- Linux Win10 双系统时无法挂载硬盘的解决方法
- elk启动命令
- 超简单的居中
- 运行iDT算法代码及后续特征编码
- 类加载器
- 一天入门redis-安装连接、基本数据类型
- hbase基于快照的数据迁移
- leetcode 150. Evaluate Reverse Polish Notation
- 安装openssl和openssl-devel
- Apache kylin安装配置
- 5-1 继承与派生
- webservice调用没有按钮