视频轨迹特征改进版本iDT(improve Dense Trajectory)

前言

最近项目需要,用到了稠密轨迹特征这个在深度学习之前的优秀算法,学习到不少知识,及时记录以便回顾。

算法论文和程序代码下载可在这篇博客中找到:http://blog.csdn.net/wzmsltw/article/details/53023363

算法原理

原理示意图

稠密轨迹特征改进版本的主要思路是:

  • 多尺度密集点采样(设置限定阈值)

  • 连续时间上轨迹点提取描述(连续帧图上跟踪计算特征点并连接形成轨迹)

  • 多尺度提取描述子信息(HOF,HOG,MBH)

  • surf计算背景偏移情况,去掉人体运动特征点,补偿相机位移,减少误差

  • Fisher Vector编码,相比较原来的bag of features效果提高显著

使用过程

下载源代码后,按readme要求安装opencv和ffmpeg软件,其实版本不用对应,我用的opencv2.4.9也是没问题的。
在安装ffmpeg时出现如下问题:

问题1:

doc/ffplay.pod around line 9413: Non-ASCII character seen before =encoding in '8�8'. 
Assuming UTF-8
POD document had syntax errors at /usr/bin/pod2man line 68.
doc/Makefile:53: recipe for target 'doc/ffplay.1' failed
make: *** [doc/ffplay.1] Error 255
make: *** 正在等待未完成的任务....
doc/ffmpeg.pod around line 11765: Non-ASCII character seen before =encoding in '8�8'. 
Assuming UTF-8
POD document had syntax errors at /usr/bin/pod2man line 68.
doc/Makefile:53: recipe for target 'doc/ffmpeg.1' failed
make: *** [doc/ffmpeg.1] Error 255

方法:脚本/usr/bin/pod2man对应格式应从ascii转为unix,找到对应文件,编辑并强制转换格式
(1)sudo vi filename
(2)set ff? (如果不是unix,使用set ff=unix强制转换并保存)

问题2:

编译idt时,提示/usr/bin/ld: 找不到 -libavdevice.so

(1)在文件中寻找对应链接库,语句:ldd which ffmpeg,查找哪些链接库缺少
(2)搜索这些库在文件中的哪些位置? sudo find / -name “libavdevice.so.54”
(3)在对应目录下确认并记住路径,在环境变量中添加
include文件夹下:/etc/ld.so.conf.d/*.conf
在文本中加入刚才确认路径
sudo ldconfig完成配置
(4)重新编译ffmpeg

安装依赖库之后就可以顺利运行iDT程序了,进入文件夹后直接:make,就会在release文件夹中出现:dense_trajectory的应用程序,按照readme教程使用运行即可。

此程序只包含IDT论文中的特征描述子生成,不包括Fisher Vector编码和svm分类,后续处理需要其他软件,具体可参考博客:https://blog.csdn.net/Cheese_pop/article/details/78621301 ,这篇博客中包含全部的iDT程序应用和循环遍历数据库的小程序,十分实用。

猜你喜欢

转载自blog.csdn.net/helloworld_fly/article/details/79899107