一种符合视频压缩标准的嵌入视频分析元数据的方案

如果您正在从事视频分析(基于计算机视觉或深度学习),并希望学习一种更简单的方法来查看结果(注释或推理元数据),那么这篇文章就是为您准备的。它介绍了一种符合标准的方法,可在不改变像素数据的情况下将对象注释/元数据嵌入压缩帧,并展示了使用 ffplay 实用程序(来自出色的 ffmpeg 社区的简约视频播放器)生成和查看压缩流的构建步骤。

这是什么方法?

补充增强信息(SEI)是插入符合 MPEG 标准的压缩视频比特流中的附加数据,用于传递额外信息。SEI 用于承载各种信息,如时间码、隐藏式字幕等,SEI 的最新添加内容之一称为注释区域 SEI(ARSEI)。ARSEI 能够以边框参数、标签、置信域的形式携带视频分析元数据,并支持多种 MPEG 压缩标准,如 H.264/AVC、H.265/HEVC 和 H.266/VVC。

一种符合视频压缩标准的嵌入视频分析元数据的方案
FourPeople(JCT-VC 的 HEVC 测试序列之一)剪辑中的带注释的样本帧

视频压缩编码器和解码器维护一个对象池,其中包含各种字段,包括标签池的 id,如下图所示。标签被单独处理,因为许多对象会共享相同的标签(在上面的示例帧中,有 20 多个对象具有相同的 “人 ”标签),因此将它们分离开来,有可能显著减少比特数。另一个优点是,除非检测到参数发生变化或明确取消对象,否则持续存在的对象和/或字段将会保留。将上述图像视为视频序列的起始帧: 由于这是第一帧,所有 29 个对象的参数和标签都将嵌入比特流中。在接下来的后续帧中,只有与前几帧相比发生的变化才会发出信号,而标签、对象 ID 等持久性字段将不会发送,从而大大节省了编码信息所需的比特数量。

一种符合视频压缩标准的嵌入视频分析元数据的方案
具有独立对象和标签池的 ARSEI 设计

在视频比特流中嵌入元数据还具有许多其他优势,包括消除了元数据传输所需的侧信道、保护元数据和视频数据、在数小时的视频中更快地检索所需的对象信息、根据用户权限混淆对象以保护隐私等。

构建和可视化的步骤是什么?

应用下面 github 链接中的补丁,重建 ffmpeg 源代码。现在,修改后的版本能够解码和播放元数据。

SFU-HW-Tracks-v1 数据集已用于演示在 HEVC/H.265 压缩视频流中嵌入元数据的能力。应用补丁、重新构建 ffmpeg(和 ffplay)的详细步骤见 https://github.com/Palanivelg/arsei_ffmpeg/。重建 ffmpeg 后,将数据集复制到 annotated_labels 文件夹,执行以下步骤。ffplay 输出示例将如下所示:

cd bin
source anno_label_to_bitstream.sh
cd <ffmpeg_bin_dir>
./ffplay <bitstream_w_arsei.h265>
一种符合视频压缩标准的嵌入视频分析元数据的方案
ffplay 的示例输出

如何扩展到其他数据集或推理管道?

只需对 “dataset_arsei.py ”稍作修改,该方法就能轻松扩展到其他数据集/标注技术,如 cvat (https://github.com/cvat-ai/cvat)。如果您在想,是否有可能对来自 gstreamer 管道(例如)的推理输出进行标记,然后通过 ffplay 将其可视化,请查看此处的另一个存储库,https://github.com/Palanivelg/arsei_gstreamer。

作者:palanivel guruvareddiar

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/52329.html

(0)

相关推荐

发表回复

登录后才能评论