AI 隐身术,能让物体在视频中消失的魔法。

共 2185字,需浏览 5分钟

 ·

2020-10-24 04:19

点击上方“Jack Cui”,选择“加为星标

第一时间关注技术干货!

1


前言

刚刚过去的 2020 年 ECCV,有一项 AI“隐身”技术引人瞩目。

正在坐秋千的小孩,突然只剩下秋千架。


让漫步的行人消失,让奔驰的汽车消失。


这么好玩的 AI 算法,你想学吗?

老规矩,今天,继续手把手教学。

算法原理、环境搭建、效果实现,一条龙服务,尽在下文!

2


FGVC

FGVC 的作者是一位 90 后北京小伙,目前在弗吉尼亚理工大学计算机工程专业就读博士三年级,师从华人教授 Jia-Bin Huang。


FGVC 算法本质上是一个基于光流法的视频修复算法。

光流法是视域中物体运动检测的概念,其用于描述运动所造成的观测目标、表面或边缘的运动,主要应用于计算机视觉和影像处理等。

使用光流法,可寻到不同帧之间的关系,并通过在不同帧之间传播信息来补全视频。

FGVC 主要包含三个步骤:Flow completion、Temporal propagation、Fusion。

Flow completion:具体操作时,要计算相邻帧之间的正向光流和反向光流、以及一组非相邻帧 (Non-local) 的正向光流和反向光流。

Temporal propagation:按照光流的轨迹,为每个丢失的像素找到一组候选像素,对于每个候选帧,都要估计一个置信分数以及一个二进制有效性指标。

Fusion:使用置信加权平均值,将每个缺失像素的候选像素与至少一个有效候选像素融合。对于没有候选像素,则使用一个关键帧,并使用单个图像补全技术来填充它。

更具体的原理,比如边缘引导的光流补充等,可以去「啃下」论文,学习一下。

Paper 地址:
https://arxiv.org/abs/2009.01835

3


环境配置

想要测试算法效果,先要部署下开发环境。

Github 开源项目地址:
https://github.com/vt-vl-lab/FGVC

Github 下载慢的,可以下载我已经打包的代码(提取码:jack):
https://pan.baidu.com/s/1t_EDDDgMCHBS83QFywuFdg

这里推荐使用 Anaconda 完成部署,不知道 conda 用法的,可以看下我写过的另一篇基础教程:

《别再折腾开发环境了,一劳永逸的搭建方法

FGVC 算法依赖于另外两个算法 DeepFill 和 RAFT。

所以,可以创建两个虚拟环境 FGVC 和 raft。

FGVC 环境使用 PyTorch 0.4.0,并配置算法 DeepFill 的环境。

DeepFill 环境配置方法:
https://github.com/nbei/Deep-Flow-Guided-Video-Inpainting#install--requirements

直接使用指令安装依赖库:

pip install -r requirements.txt

raft 环境使用 PyTorch 1.6.0,并配置算法 RAFT 的环境。

RAFT 环境配置方法:
https://github.com/princeton-vl/RAFT#requirements

这里比较简单,使用 conda 安装需要的库即可。

都配置完毕,就可以测试算法效果了!

4


效果测试

先激活 raft 虚拟环境,直到运行结果出现提示:

「Please switch to Pytorch 0.4.0」

然后切换到 FGVC 虚拟环境,然后再运行一次代码。

Object removal:

cd toolpython video_completion.py \       --mode object_removal \       --path ../data/tennis \       --path_mask ../data/tennis_mask \       --outroot ../result/tennis_removal \       --seamless

FOV extrapolation:

cd toolpython video_completion.py \       --mode video_extrapolation \       --path ../data/tennis \       --outroot ../result/tennis_extrapolation \       --H_scale 2 \       --W_scale 2 \       --seamless

想要计算速度更快些,可以去掉 seamless 参数。

算法需要 rgb 图片和 mask 图片,这些数据是已知的,想要去除什么物体,给个物体的 mask 即可。


运行效果示意图

5


最后

关注我带你玩转各种好玩的 AI 算法,我是 Jack Cui,我们下期见!

推荐阅读


我是如何成为算法工程师的,超详细的学习路线

这些 AI 算法太强了,我有个大胆的想法!

成功上岸阿里,深度学习知识考点总结

百年老照片修复算法,那些高颜值的父母!

浏览 67
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报