如何从视频中移除分割(如人或鸟)?有哪些标准技术可供使用?

6

假设您正在拍摄视频(相机处于稳定状态),突然一只鸟飞过了相机的视野。这时,可以使用图像分割技术自动从视频中移除鸟的影像。

这种算法通常被称为什么样的算法?它们通常是如何实现的?


你是想要移除特定的实例(例如,你想标记为移除的一个特定鸟)还是场景中的所有非静态对象(例如,所有移动的人)? - Doug
我想取出特定的实例。因此,我认为逐个处理就足够了。 - amssage
2个回答

4
有一种技术叫做简单图像对象提取(SIOX) - 它使用一种技术来识别静态和视频图像中的前景和背景对象。开源的GIMP编辑器有其实现,这里有更多信息

从概述中可以看到:

SIOX代表简单交互式对象提取,是一种用于在很少用户交互的情况下从静止图像中提取前景的解决方案。 SIOX快速,噪声鲁棒,因此也可用于视频分割。 它避免了许多基于图形的分割方法的缺点,但在不同的基准测试上表现大致相同。 SIOX是开放和免费的(Apache许可证),作者故意没有对技术的任何部分进行专利申请。 因此,它已经集成到过去几年中的几个开源图像处理程序中。 SIOX是GNU图像处理程序(GIMP)中前景提取工具的基础算法,并且是Inkscape中跟踪器工具的一部分。 SIOX起源于E-Chalk,那里对电子粉笔板前面的讲师进行了分段。 SIOX的变体正在用于机器人视觉和改进3D飞行时间相机分割。
这是SIOX的Java参考实现的链接。
这是一个关于算法变体如何工作的详细PDF的链接。
你应该能够使用帧间插值来适应每个视频帧,通过使用周围帧的时间数据来移除特定前景对象。

2
如果相机固定,场景中动作不太多,那么我建议采用基于背景减法的方法。
步骤1:为视频的每一帧计算背景。有复杂的算法可以做到这一点,但是一个非常简单而有效的方法是在3秒的时间窗口内计算图像中每个像素的中值。如果物体移动缓慢,则可以延长时间窗口。顺便说一句,如果你只执行这种滤波,它将从视频中去除大多数移动对象,如果相机固定,就回答了我早期关于所有对象与一个对象的问题。
步骤2:使用画笔工具标记每个帧中要删除的区域,并用背景像素替换它们。不要费心使用细画笔或套索工具,因为你标记的任何非对象像素都将被其过滤版本替换。由于边界不太重要,你可能可以对几个帧使用相同的画笔标记。如果物体是场景中唯一移动的物体,你可以只标记整个帧并用背景替换它。
无论如何,为了回答您更一般的问题,您想要研究的主题被称为图像和视频的修复。关于这个主题有很多文献可供参考,我所描述的只是一个超级简单的方法,您可以在一个小时左右使用OpenCV实现它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接