查看原文
其他

框一下就能从视频隐身,这是现实版的「隐身衣」?

极市平台 2021-09-20

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流点击文末“阅读原文”立刻申请入群~


转载自机器之心

嗯,我也想在摄像头面前被「框一下」。

只要画个边界框,模型就能自动追踪边界框内的物体,并在视频中隐藏它。最近,这个神奇的项目借助目标检测与图像修复,成功地让模型对视频中的物体视而不见,并通过伪造背景将物体从视频中抹去。


项目地址:https://github.com/zllrunning/video-object-removal


效果怎么样


我们先看看效果,左图是原视频,右图是模型擦除行人后的效果。基本上行人定位与追踪是没什么问题的,但比较困难的地方在于图像修复,即将行人那一部分像素删除后,重建合理的背景。


放大来看,如果背景比较简单,例如纯色说少纹理,那么修复效果是挺好的。但是纹理复杂的情况下,图像修复会出现一些问题,例如车道线对不齐等等。但总体来说,这个项目已经有很好的效果了。



此外,如果我们想获得上面修复的结果,只需要简单地框选目标就能完成。我们可以画一个边界框,然后模型就会处理视频,并将结果输出到 results/inpainting 文件夹中。



项目怎么用


项目的安装和使用也是比较简单的,作者还提供了完整的预训练模型。所以我们只需要配置 Python 3.5 和 PyTorch 0.4 就差不多能跑了,当然还得有一块 GPU。


具体而言,我们需要下载 GitHub 项目,然后转到 inpainting 目录下运行 install.sh 脚本,这就完成安装了。我们可以下载 SiamMask 和 Inpainting 两个预训练模型,并放在项目的 cp 文件夹下,然后就可以愉快地测试 Demo 了:


python demo.py --data data/Human6


视频文件也是可以直接测试的:


python demo.py --data data/bag.avi


上面两个命令行都会对图像或视频进行处理,并保存生成结果。


  • 预训练 SiamMask:http://www.robots.ox.ac.uk/~qwang/SiamMask_DAVIS.pth

  • 预训练 Inpainting:https://drive.google.com/file/d/1KAi9oQVBaJU9ytr7dYr2WwEcO5NLiJvo/view?usp=sharing


原理怎么样


前面介绍过,video-object-removal 主要借鉴了两项工作,即 SiamMask 与 Deep Video Inpainting,它们都是 CVPR 2019 的研究。通过 SiamMask 追踪视频中的目标,并将 Mask 传递给 Deep Video Inpainting,然后模型就能重建最终修复效果了。


视频实时追踪


在 SiamMask 中,研究者展示了如何在统一框架下,实时执行视觉追踪与半监督目标分割。在训练完成后,SiamMask 只依赖一个初始化的边界框,就能实时生成未知类别的目标分割掩码,并以每秒 55 帧的速率实时更新掩码。


论文:Fast Online Object Tracking and Segmentation: A Unifying Approach


  • 论文地址:https://arxiv.org/abs/1812.05050

  • GitHub:https://github.com/foolwood/SiamMask


SiamMask 的变体示意图,它可以选择 three-branch 的完整版来预测边界框和掩码,也可以选择 two-branch 的版本直接预测掩码。


SiamMask 的实时分割与追踪效果。


视频实时修复


视频修复旨在利用视频中合理的内容填补被删除的像素,在深度视频修复这篇论文中,研究者提出了一种深度架构来进行快速的视频修复。该模型建立在基于图像的编码器解码器模型上,并从近邻的一些视频帧收集信息,从而合成未知区域的图像内容。研究者表示他们的方法能构建更连贯和合理的视频修复,同时模型的高效性还能让这种修复实时进行。


论文:Deep Video Inpainting


  • 论文地址:https://arxiv.org/abs/1905.01639

  • GitHub:https://github.com/mcahny/Deep-Video-Inpainting


深度视频修复网络的整体结构,该网络会利用当前帧 t 以及 t-6、t-3、t+3、t+6 等图像帧的原始信息,从而根据前面的预测结果 Y_t-1 推断当前帧的修复结果 Y_t。此外,为了获得时序上的连贯性,作者会使用循环 feedback 和 ConvLSTM 模块,并使用 flow 和 warp 两个损失函数。


Deep Video Inpainting 的效果(无奈的是,视频中的阴影还在)


参考链接:
https://github.com/zllrunning/video-object-removal


-完-





*延伸阅读



点击左下角阅读原文”,即可申请加入极市目标跟踪、目标检测、工业检测、人脸方向、视觉竞赛等技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~


△长按关注极市平台


觉得有用麻烦给个在看啦~  

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存