一、概述
1、开源地址:
https://github.com/andrefaraujo/videosearch
2、说明:
该视频检索技术是由斯坦福大学的一个图片视频和多媒体小组实现,使用图片对视频内容进行检索。
目前该技术包含的功能如下表述:
- 提取视频的关键帧(关键帧,其实就是视频中的一张图像)。 对视频进行镜头边缘检测。
- 对图片或者帧提取SIFT(尺度不变特征变换,用于在图像中检测出关键点,是一种局部特征描述子)。
- 为每张图片/关键帧、镜头或者视频片段 提取全局描述子(Fisher Vectors)。
- 使用Bloom Filters对每个视频片段进行索引。
- 使用图片对图片或者视频数据库进行检索。
- 用区间为0~1的平均精准度和精准度来评估检索结果。
二、检索技术实现步骤
1. 建立VLFET库(计算机视觉库)。
2. 建立YAEL库(图像检索库)。
3. 给视频数据库中的视频提取关键帧。(关键帧指的是视频中的图片。一个1分51秒的视频,关键帧有113张,一个2分51秒的关键帧大有173张,一分钟有60张左右)
4. 建立镜头边界检测器并且给数据库中的视频检测视频边界。
5. 建立SIFT(图像关键点)提取器并且给数据库中的每个关键帧提取SIFT。
6. 建立全局描述子提取器并且给每一帧、镜头和片段提取全局描述子。
7. 给用于查询的图片提取SIFT(或者全局描述子)。
8. 建立检索器,并且用它检索基于帧、基于镜头或者基于片段的索引。
9. 计算检索结果,得出平均精准度和精准度。
以上1~2步只需要最初始执行一次。之后如果往视频库中添加了视频想进行新的检索,则需要重复3~6步。如果未添加新的视频,新添加了想查询的图片,则需要重复7和9步。
三、一些专有名字的解释及资料
镜头边界检测:http://www.docin.com/p-240579569.html
SIFT:http://baike.baidu.com/item/SIFT
Fisher Vectors:http://blog.csdn.net/ikerpeng/article/details/41644197
Bloom Filters:http://blog.csdn.net/jiaomeng/article/details/1495500
VLFEAT:http://www.vlfeat.org/
YAEL:http://yael.gforge.inria.fr/
Opencv:http://baike.baidu.com/item/opencv
ffmpeg:http://baike.baidu.com/item/ffmpeg
四、自行的测试结果
该技术环境在ubuntu.14.04上面搭建成功,并且按照demo指示,测试通过。但是还不太会用….