4

每个人!

我处理来自 IP 摄像机的视频,并编写了基于解压缩视频分析的运动检测算法。但我真的更快。我找到了几篇关于压缩域分析的论文,但没有找到任何实现。谁能给我推荐一些代码?

找到的材料:
http :
//www.ist-live.org/intranet/school-of-informatics-university-of-bradford001-7/41410206.pdf/view http://doc.rero.ch/lm.php? url=1000,43,4,20061128120121-NA/Bracamonte_Javier_-_A_Low_Complexity_Change_Detection_Algorithm_20061128.pdf

4

2 回答 2

3

我必须检测 H.264 视频中的运动,对我来说,帧大小是一个非常好的指标。

我使用 ffprobe(来自 ffmpeg 项目)来导出帧大小,如下所示:

./ffprobe -show_frames -pretty video.mp4 | grep 'size' | grep -o '[0-9]*' > sizes.txt

在我的情况下,没有移动意味着更大的 I 帧(对我来说,每 30 帧是一个 I 帧)和中间一些帧的更小尺寸。

我是视频编码的新手,所以我猜这些东西可能非常依赖于视频信号的编码和类型,但值得一看,因为它的试用速度非常快。导出帧大小并在例如 Matlab 中查看。


编辑: 最后我重新编码了视频,使每一秒帧都是一个 I 帧,因为这提供了更好的时间分辨率。我没有测试的一个想法是反转视频并做同样的事情,这应该可以更准确地估计运动开始/结束的时间,类似于通过前向后向滤波消除相位延迟。

于 2015-06-09T07:15:31.587 回答
0

https://github.com/Breakthrough/DVR-Scan

DVR-Scan 是一个跨平台命令行 (CLI) 应用程序,可自动检测视频文件(例如安全摄像机镜头)中的运动事件。除了定位每个运动事件的时间和持续时间之外,DVR-Scan 还将每个运动事件的镜头保存到一个新的、单独的视频剪辑中。DVR-Scan 不仅是免费的开源软件 (FOSS),用 Python 编写,并且基于 Numpy 和 OpenCV,而且是可扩展和可破解的。

我可以确认它与 MPEG4 (H264) AVI 文件完美配合。对于 1200x900 视频,我的笔记本电脑配备 i5 4300U CPU 的扫描速度约为 30 fps。

您可以检查所使用算法的来源。

以下是来自同一作者的一些解释性教程链接: https ://github.com/Breakthrough/python-scene-detection-tutorial

另请参阅Python 场景变化检测

于 2018-06-14T20:51:49.437 回答