手机跑SOTA模型快8倍 Facebook AI开源超强全栈视频库
视频已逐渐超过文字和图片,可以说成为了现在使用最广的媒体形式,也占据了用户更多的浏览时间,这就使得视频理解变得尤为重要。
各大互联网公司与顶尖高校纷纷绞尽脑汁,竞相研究SOTA的视频理解模型与算法。
在谷歌,脸书,Open-MM Lab等分别祭出各家杀器之后,脸书人工智能实验室(Facebook AI)在推出PySloFast之后时隔一年,携PyTorchVideo重回战场。
官方网站: https://pytorchvideo./
今天我们就来扒一下,PyTorchVideo究竟是怎样的一个代码库,又如何能在开源当天就跻身于GitHub Trending榜单。
PyTorchVideo哪儿都能用
不同于在座的各位视频代码理解框架只醉心于自家框架,无法移步与其他代码库。
PyTorchVideo像是torchvision等基础代码库一般,「哪儿都能用」!PyTorchVideo不但可以用在视频理解任务中,甚至可以用在其他任务的代码库。
脸书人工智能实验室的大佬们不但在「自家人」的PySloFast代码库上无缝使用上了PyTorchVideo,并且还在Classy Vision,PyTorch Lightening等等框架上无缝插入。
作为含着金钥匙出生的PyTorchVideo,其直接成为了PyTorch Lightning-Flash的视频理解担当,作为基础库被默认使用。
这不,在FiftyOne项目中,开源社区的吃瓜群众就利用Lightning-Flash搞出了一个浏览视频的工具箱,可以直接查看视频的动作类别。
FiftyOne: https://medium./pytorch/ushering-in-the-ne-age-of-video-understanding-ith-pytorch-1d85078e8015
PyTorchVideo啥都能做
更厉害的是,PyTorchVideo似乎「啥都能做」!不但在视频分类,动作检测等任务中深耕SOTA。
甚至还「略懂」LeCun最爱的自监督学习,以及音频事件检测等等千奇百怪的任务也不在话下。
基于PyTorchVideo的SloFast模型进行动作监测
PyTorchVideo手机也能玩
更丧心病狂的是,PyTorchVideo一并开源了移动端的加速优化,不但提供了手把手的教程,将视频模型一步步优化核心Kernel,量化(quantilize)加速。
数倍加速后在移动端实时运行,甚至官方直接暴力放出Android和iOS移动端开源代码,将SOTA的视频模型直接塞到手机里跑着玩玩。
在三星Galaxy S10手机上运行的PyTorchVideo加速X3D模型,运行速度快8倍,处理一秒视频大约需要130毫秒
PyTorchVideo是个啥
PyTorchVideo的真身是一个视频理解的机器学习库,可以服务于各种代码库,以及各类SOTA视频模型模型和开源视频模型。
以及各种视频基础算法,视频数据操作,各类流行视频数据集,视频增广,视频模型加速量化,等等一些列的全栈视频相关内容。
PyTorchVideo怎么玩
pip一下。
pip install pytorchvideo
然后,在浏览官方的教程并上手实验了一下之后,发现通过PyTorchVideo只需要寥寥几行就可以训练一个视频模型
from pytorchvideo import data, models, aelerator # Create visual and acoustic models. visual_model = models.slofast.create_slofast( model_num_class=400, ) acoustic_model = models.res.create_acoustic_res( model_num_class=400, ) # Create Kiics data loader. kiics_loader = torch.utils.data.DataLoader( data.Kiics( data_path=DATA_PATH, clip_sampler=data.make_clip_sampler( "uniform", CLIP_DURATION, ), ) batch_size=BATCH_SIZE, ) # Deploy model. visual__inst_deploy = aelerator.deployment. convert_to_deployable_form(_inst, input_tensor)
那么从开源的训练模型库中直接使用模型效果如何?
model = torch.hub.load("facebookresearch/pytorchvideo", model=model_name, pretrained=True)
官方的模型库太丰富,简直眼花缭乱。
Kiics-400
arch
depth
frame length x sample rate
1
Flops (G) x vies
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
Slo
R50
4x16
72.40
27.55 x 3 x 10
32.45
Slo
R50
8x8
74.58
54.52 x 3 x 10
32.45
SloFast
R50
4x16
75.34
36.69 x 3 x 10
34.48
SloFast
R50
8x8
76.94
65.71 x 3 x 10
34.57
SloFast
R101
8x8
77.90
127.20 x 3 x 10
62.83
SloFast
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-Something V2
arch
depth
pretrain
frame length x sample rate
1
Flops (G) x vies
Params (M)
Slo
R50
Kiics 400
8x8
60.04
55.10 x 3 x 1
31.96
SloFast
R50
Kiics 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 vies
Params (M)
Slo
R50
Kiics 400
8x8
34.72
55.10 x 3 x 10
31.96
SloFast
R50
Kiics 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)
Slo
R50
Kiics 400
4x16
19.5
31.78
SloFast
R50
Kiics 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")
据官方博客透露,PyTorchVideo开源了一大票视频模型,包括脸书人工智能实验室近期出现在ICCV,ICML等工作
Multiscale Vision Transformershttps://arxiv./abs/2104.11227 A large-scale study on unsupervised spatiotemporal representation learninghttps://arxiv./abs/2104.14558 Multivie pseudo-labeling for semi-supervised learning from videohttps://arxiv./abs/2104.00682 Is space-time attention all you need for video understanding?https://arxiv./abs/2102.05095 Keeping Your Eye on the Ball: Trajectory Attention in Video Transformershttps://arxiv./abs/2106.05392 SloFast orks for video recognitionhttps://arxiv./abs/1812.03982 X3D: Expanding architectures for efficient video recognitionhttps://arxiv./abs/2004.04730 Audiovisual SloFast orks for video recognitionhttps://arxiv./abs/2001.08740 Non-local neural orkshttps://arxiv./abs/1711.07971 A closer look at spatiotemporal convolutions for action recognitionhttps://arxiv./abs/1711.11248 Video classification ith channel-separated convolutional orkshttps://arxiv./abs/1904.02811
似乎MultiScale Vision Transform也位列其中,有兴趣的朋友可以去一探究竟。
人工智能培训
- 真正能和人交流的机器人什么时候实现
- 国产机器人成功完成首例远程冠脉介入手术
- 人工智能与第四次工业革命
- 未来30年的AI和物联网
- 新三板创新层公司东方水利新增专利授权:“一
- 发展人工智能是让人和机器更好地合作
- 新春贺喜! 经开区持续推进工业互联网平台建设
- 以工业机器人为桥 传统企业如何趟过智造这条河
- 山立滤芯SAGL-1HH SAGL-2HH
- 2015国际智能星创师大赛火热报名中!
- 未来机器人会咋看人类?递归神经网络之父-像蚂
- 成都新川人工智能创新中心二期主体结构封顶
- 斯坦德机器人完成数亿元人民币C轮融资,小米产
- 到2020年,智能手机将拥有十项AI功能,有些可能
- 寻找AI机器人的增长“跳板”:老龄化为支点的产
- 力升高科耐高温消防机器人参加某支队性能测试