视频编辑利器,不喜欢就框除!开源视频物体移除软件video object removal
image inpainting
像上图中的image inpainting相信大家并不陌生,OpenCV就有相关的例子。
但如果是去除视频里的目标呢,就不那么容易了。
今天跟大家介绍一款基于PyTorch的video object removal的开源库,只用在第一帧框出物体就可以将框出的物体在视频中移除,操作很方便,移除的效果也不错。
代码链接:
https://github.com/zllrunning/video-object-removal
对于移除图像中的物体,我们可以先将物体使用mask遮住,再用image inpainting来解决,而视频中如果想移除某个物体呢?
可以简单的使用拆帧按照图像来处理,但是视频中的物体会有移动,那我们需要每幅图像的mask,这会带来很大的工作量,而且这种思路没有考虑到视频中时序上的关系。
CVPR 2019有篇文章Deep Video Inpainting[1]介绍了一种视频的处理方法,生成效果时序上更加一致,但此方法同样需要视频中每帧的物体的mask,如果想使用此方法那我们就需要想办法获取物体的mask。
在3月7日,52CV发了关于SiamMask[2]目标跟踪算法的文章(CVPR 2019 | 惊艳的SiamMask:开源快速同时进行目标跟踪与分割算法),将跟踪与分割结合起来,能够对给出目标的像素级标注。
那SiamMask提供视频帧中物体的mask,Deep Video Inpainting负责物体的移除、修复,便可以实现一键移除视频中的物体,解放了标注mask的双手。
这就是本文介绍的这款开源软件的做法。
软件使用也非常简单。
在配置好环境后,只需要一条命令:
python demo.py --data data/Human6
支持视频文件的测试:
python demo.py --data data/bag.avi
如果你发现这个物体的边缘处理的不是很干净你可以更改--mask-dilation这个参数,作用是扩大遮罩的范围:
python demo.py --data data/Human6 --mask-dilation 32
最后看下效果:
操作示例,框出要移除的物体
修复后的视频会自动存储results/inpaint文件夹下。
感觉用这个可以做很多有意思的应用,你有什么想法吗?欢迎留言。
参考文献
[1] Wang Q, Zhang L, Bertinetto L, et al. Fast online object tracking and segmentation: A unifying approach[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 1328-1338.
[2] Kim, Dahun and Woo, Sanghyun and Lee, Joon-Young and So Kweon, In, Deep Video Inpainting//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2019: 5792—5801.
这份代码刚刚开源,感谢开发者,也欢迎大家给大佬加星。
https://github.com/zllrunning/video-object-removal