压缩域中的运动检测(JPEG / Mpeg4 / H264)

时间:2012-04-11 09:56:52

标签: jpeg motion-detection mpeg-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

2 个答案:

答案 0 :(得分:3)

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

我使用ffprobe(来自ffmpeg项目)导出这样的帧大小:

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

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

我对视频编码很陌生,所以我猜这些东西可能非常依赖于视频信号的编码和类型,但值得一看,因为尝试速度非常快。导出框架并查看例如Matlab的。

修改 最后,我重新编码了视频,因此每隔一帧就是一个I帧,因为这样可以提供更好的时间分辨率。我没有测试的一个想法是反转视频并执行相同的操作,这应该可以更准确地估计运动开始/结束的时间,类似于通过前向 - 后向过滤消除相位延迟。

答案 1 :(得分:-1)

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

  

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

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

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

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

另见Python scene change detection