2

我正在做一个项目,该项目需要我在连接到 Beagleboard xm 的网络摄像头的实时视频中检测和跟踪一个人。我已经在像素域中使用 Opencv 完成了这项任务。板上的结果非常准确,但速度极慢。许多人建议我离开像素域并在 h.264/MPEG-4 压缩视频中执行相同的任务,因为它会极大地减少计算开销。我已经阅读了许多研究论文,但没有发现任何可以用来分析和处理 h.264 压缩视频的软件平台或库。如果有人可以向我推荐一些用于 h.264 压缩视频分析的库并进一步指导我,我将不胜感激。

谢谢并恭祝安康。

4

3 回答 3

0

我不确定这到底有多实用(我从未尝试过这样做),但我的猜测是他们所指的是寻找一个都(几乎)相同的宏块块运动向量。

例如,假设您有一个没有平移的相机,并且图片显示一辆汽车在屏幕上行驶。查看运动矢量,您应该有(大致)汽车形的一堆宏块,它们都具有相似的运动矢量(表示汽车的运动)。然后,您可以孤立地查看该块并尝试识别它,而不是查看您感兴趣的对象的整个图片。同样,如果相机与汽车一起平移,您将有一个带有小运动矢量的汽车形块,并且大多数背景将在汽车运动的相反方向上具有相似的运动矢量。

但是请注意,这可能充其量是不精确的。举个例子,让我们假设我们的神话汽车行驶在一栋砖砌建筑前,它的前灯照亮了一些砖块。在这种情况下,一张图片中的一块砖可能(很容易)不指向前一张图片中的同一块砖,而是指向前一张图片中恰好被照亮的砖块。砖块足够相似,最接近的匹配将更多地取决于照明而不是砖块本身。

于 2013-11-13T19:35:00.483 回答
0

最终,您可能能够解析并确定 h.264 有一个对象,但这不会像您寻找的那样是“对象跟踪”。openCV 是优秀的软件,它最擅长的。您是否考虑过将视频缩小到更小的分辨率以便通过 openCV 进行分析?

我认为您高估了这台 45 美元计算机的计算能力。从计算上讲,对象识别和跟踪非常困难。我将首先查看您的电路板可以从那里跟踪和优化每秒多少帧。开始看看你的瓶颈在哪里,你最好处理原始视频,而不是先解码 h.264 视频。同样,RAW 视频需要大量 RAM,而通过它进行处理需要大量 CPU。

最大限度地减少解码视频的开销,通过在分析之前缩小视频来最大限度地减少 RAM 开销,但最终,您对 1ghz、32 位 ARM 处理器的要求很高。

于 2013-11-13T20:01:34.333 回答
-2

FFMPEG 是一个非常古老的库,现在已不受支持。它在 h.264 压缩视频中的处理和对象跟踪方面的能力非常有限。大多数命令通常已过时。最好的办法是彻底研究 h.264,然后尝试用 Java 或 c# 等语言实现自己的 API。

于 2013-11-19T09:44:12.180 回答