前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >时隔两年,Facebook又出视频理解利器

时隔两年,Facebook又出视频理解利器

作者头像
AI科技评论
发布2021-07-27 13:43:01
6400
发布2021-07-27 13:43:01
举报
文章被收录于专栏:AI科技评论

AI科技评论报道

视频作为当今最被广为使用的媒体形式,已逐渐超过文字和图片占据了人们更多的浏览时间。这使得视频理解变得尤为重要。各大互联网公司与顶尖高校纷纷绞尽脑汁,竞相研究前沿视频理解模型与算法。在谷歌,脸书,亚麻,Open-MM Lab等分别祭出各家杀器之后,脸书人工智能实验室在PySlowFast之后时隔两年,携PyTorchVideo重入战场。

官方网站:https://pytorchvideo.org/

作为资深的从业者,小编今天就深扒一下,PyTorchVideo究竟是怎样的一个代码库,又如何能在开源当天就跻身于GitHub Trending的榜首。

PyTorchVideo好像哪儿都能用

不同于在座的各位视频代码理解框架只醉心于自家框架,无法移步与其他代码库。PyTorchVideo似乎如同torchvision等基础代码库一般,“哪儿都能用”!PyTorchVideo不但可以用在视频理解任务中,甚至可以用在其他任务的代码库。脸书人工实验室的大佬们不但在“自家人”的PySlowFast代码库上无缝使用上了PyTorchVideo,并且还在Classy Vision,PyTorch Lightening等等框架上无缝插入。作为含着金钥匙出生的PyTorchVideo,其直接成为了PyTorch Lightning-Flash的视频理解担当,作为基础库被默认使用。这不,在FiftyOne项目中,开源社区的吃瓜群众就利Lightning-Flash鬼畜出了一个浏览视频的工具箱,可以直接查看视频的动作类别。

PyTorchVideo好像啥都管

更厉害的是,PyTorchVideo似乎“啥都管”!不但在视频分类,动作检测等任务中深耕前沿,还“略懂”Lecun最爱的自监督学习,甚至音频事件检测等等千奇百怪的任务也不在话下。

PyTorchVideo好像手机也能玩

更丧心病狂的是,PyTorchVideo一并开源了移动端的加速优化。不但提供了手把手的教程,将视频模型一步步优化核心Kernel,量化(quantilize)加速,数倍加速后在移动端实时运行,甚至官方直接暴力放出Android和iOS移动端开源代码,将前沿的视频模型直接塞到手机里跑着玩玩。

PyTorchVideo到底是个啥

PyTorchVideo的真身是一个基础视频库,可以服务于各种代码库。除了全方位的前沿视频模型模型,开源视频模型,其中还含有各类视频基础算法,视频数据操作,各类流行视频数据集,视频增广,视频模型加速量化,等等一些列的全栈视频相关内容。据官方博客透露,PyTorchVideo开源了一大票视频模型,包括脸书人工智能实验室近期出现在ICCV,ICML等回忆中的工作:

  • Multiscale Vision Transformers
  • A large-scale study on unsupervised spatiotemporal representation learning
  • Multiview pseudo-labeling for semi-supervised learning from video
  • Is space-time attention all you need for video understanding?
  • Keeping Your Eye on the Ball: Trajectory Attention in Video Transformers
  • SlowFast networks for video recognition
  • X3D: Expanding architectures for efficient video recognition
  • Audiovisual SlowFast networks for video recognition
  • Non-local neural networks
  • A closer look at spatiotemporal
  • convolutions for action recognition
  • Video classification with channel-separated convolutional networks

似乎其MultiScale Vision Transform也位列其中,有兴趣的朋友可以去一探究竟。

PyTorchVideo怎么玩

笔者浏览了一下官方的教程并上手实验了一下,发现通过PyTorchVideo只需要寥寥几行就可以训练一个视频模型:

from pytorchvideo import data, models, accelerator # Create visual and acoustic models. visual_model = models.slowfast.create_slowfast( model_num_class=400, ) acoustic_model = models.resnet.create_acoustic_resnet( model_num_class=400, ) # Create Kinetics data loader. kinetics_loader = torch.utils.data.DataLoader( data.Kinetics( data_path=DATA_PATH, clip_sampler=data.make_clip_sampler( "uniform", CLIP_DURATION, ), ) batch_size=BATCH_SIZE, ) # Deploy model. visual_net_inst_deploy = accelerator.deployment.\ convert_to_deployable_form(net_inst, input_tensor)

笔者继而从开源的训练模型库中直接使用模型,在官方的模型库中眼花缭乱。

model = torch.hub.load("facebookresearch/pytorchvideo", model=model_name, pretrained=True)

Kinetics-400

arch

depth

frame length x sample rate

top 1

Flops (G) x views

Params (M)

C2D

R50

8x8

71.46

25.89 x 3 x 10

24.33

I3D

R50

8x8

73.27

37.53 x 3 x 10

28.04

Slow

R50

4x16

72.40

27.55 x 3 x 10

32.45

Slow

R50

8x8

74.58

54.52 x 3 x 10

32.45

SlowFast

R50

4x16

75.34

36.69 x 3 x 10

34.48

SlowFast

R50

8x8

76.94

65.71 x 3 x 10

34.57

SlowFast

R101

8x8

77.90

127.20 x 3 x 10

62.83

SlowFast

R101

16x8

78.70

215.61 x 3 x 10

53.77

CSN

R101

32x2

77.00

75.62 x 3 x 10

22.21

R(2+1)D

R50

16x4

76.01

76.45 x 3 x 10

28.11

X3D

XS

4x12

69.12

0.91 x 3 x 10

3.79

X3D

S

13x6

73.33

2.96 x 3 x 10

3.79

X3D

M

16x5

75.94

6.72 x 3 x 10

3.79

X3D

L

16x5

77.44

26.64 x 3 x 10

6.15

Something-SomethingV2

arch

depth

pretrain

frame length x sample rate

top 1

Flops (G) x views

Params (M)

Slow

R50

Kinetics 400

8x8

60.04

55.10 x 3 x 1

31.96

SlowFast

R50

Kinetics 400

8x8

61.68

66.60 x 3 x 1

34.04

Charades

arch

depth

pretrain

frame length x sample rate

MAP

Flops (G) x views

Params (M)

Slow

R50

Kinetics 400

8x8

34.72

55.10 x 3 x 10

31.96

SlowFast

R50

Kinetics 400

8x8

37.24

66.60 x 3 x 10

34.00

AVA(V2.2)

arch

depth

pretrain

frame length x sample rate

MAP

Params (M)

Slow

R50

Kinetics 400

4x16

19.5

31.78

SlowFast

R50

Kinetics 400

8x8

24.67

33.82

甚至通过PyTorchVideo加持的 Lightning Flash,分类视频仅仅只需三行。

from flash import VideoClassifier model = VideoClassifier.load_from_checkpoint("checkpoint_uri") model.predict("path_to_video_folder")

参考链接:

https://pytorchvideo.org/

https://ai.facebook.com/blog/pytorchvideo-a-deep-learning-library-for-video-understanding/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技评论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Something-SomethingV2
  • Charades
  • AVA(V2.2)
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档