互联网资讯 / 人工智能 · 2023年12月14日

手机运行SOTA模型速度提升8倍,Facebook AI发布强大的全栈视频库PyTorchVideo

视频已逐渐超过文字和图片,可以说成为了现在使用最广的媒体形式,同时也占据了用户更多的浏览时间,这就使得视频理解变得尤为重要。

各大互联网公司与顶尖高校纷纷绞尽脑汁,竞相研究SOTA的视频理解模型与算法。

在谷歌,脸书,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搞出了一个浏览视频的工具箱,可以直接查看视频的动作类别。

FiftyOne: https://MediuM.coM/pyTorch/USheRing-in-the-new-age-of-video-undeRstanding-wITh-pyTorch-1d85078e8015

PyTorchVideo啥都能做

更厉害的是,PyTorchVideo似乎「啥都能做」!不但在视频分类,动作检测等任务中深耕SOTA。

甚至还「略懂」LeCun最爱的自监督学习,以及音频事件检测等等千奇百怪的任务也不在话下。

基于PyTorchVideo的SlowFAst模型进行动作监测

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, 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

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

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.