讓手機跑SOTA模型快8倍!Facebook AI開源最強全棧視頻庫:PyTorchVideo!

2022-02-02 新智元

來源:Facebook AI

編輯:好睏

【新智元導讀時隔一年,Facebook AI攜PyTorchVideo重回視頻理解的戰場。其不僅可以「無縫」接入各類代碼庫,甚至還「略懂」LeCun最愛的自監督學習。順便一提,手機也能玩!

視頻已逐漸超過文字和圖片,可以說成為了現在使用最廣的媒體形式,同時也佔據了用戶更多的瀏覽時間,這就使得視頻理解變得尤為重要。

各大網際網路公司與頂尖高校紛紛絞盡腦汁,競相研究SOTA的視頻理解模型與算法。

在谷歌,臉書,Open-MM Lab等分別祭出各家殺器之後,臉書人工智慧實驗室(Facebook AI)在推出PySlowFast之後時隔一年,攜PyTorchVideo重回戰場。

 

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

 

今天我們就來扒一下,PyTorchVideo究竟是怎樣的一個代碼庫,又如何能在開源當天就躋身於GitHub Trending榜單。

不同於在座的各位視頻代碼理解框架只醉心於自家框架,無法移步與其他代碼庫。

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似乎「啥都能做」!不但在視頻分類,動作檢測等任務中深耕SOTA。

甚至還「略懂」LeCun最愛的自監督學習,以及音頻事件檢測等等千奇百怪的任務也不在話下。

 

基於PyTorchVideo的SlowFast模型進行動作監測

更喪心病狂的是,PyTorchVideo一併開源了移動端的加速優化,不但提供了手把手的教程,將視頻模型一步步優化核心Kernel,量化(quantilize)加速。

數倍加速後在移動端實時運行,甚至官方直接暴力放出Android和iOS移動端開原始碼,將SOTA的視頻模型直接塞到手機裡跑著玩玩。

 

在三星Galaxy S10手機上運行的PyTorchVideo加速X3D模型,運行速度快8倍,處理一秒視頻大約需要130毫秒

PyTorchVideo的真身是一個視頻理解的機器學習庫,可以服務於各種代碼庫,以及各類SOTA視頻模型模型和開源視頻模型。

以及各種視頻基礎算法,視頻數據操作,各類流行視頻數據集,視頻增廣,視頻模型加速量化,等等一些列的全棧視頻相關內容。

 

首先pip一下。

然後,在瀏覽官方的教程並上手實驗了一下之後,發現通過PyTorchVideo只需要寥寥幾行就可以訓練一個視頻模型:

from pytorchvideo import data, models, acceleratorvisual_model = models.slowfast.create_slowfast(    model_num_class=400,) acoustic_model = models.resnet.create_acoustic_resnet(    model_num_class=400,) 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,) 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-Something V2

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")

據官方博客透露,PyTorchVideo開源了一大票視頻模型,包括臉書人工智慧實驗室近期出現在ICCV,ICML等工作:

Multiscale Vision Transformers

https://arxiv.org/abs/2104.11227

A large-scale study on unsupervised spatiotemporal representation learning

https://arxiv.org/abs/2104.14558

Multiview pseudo-labeling for semi-supervised learning from video

https://arxiv.org/abs/2104.00682

Is space-time attention all you need for video understanding?

https://arxiv.org/abs/2102.05095

Keeping Your Eye on the Ball: Trajectory Attention in Video Transformers

https://arxiv.org/abs/2106.05392

SlowFast networks for video recognition

https://arxiv.org/abs/1812.03982

X3D: Expanding architectures for efficient video recognition

https://arxiv.org/abs/2004.04730

Audiovisual SlowFast networks for video recognition

https://arxiv.org/abs/2001.08740

Non-local neural networks

https://arxiv.org/abs/1711.07971

A closer look at spatiotemporal convolutions for action recognition

https://arxiv.org/abs/1711.11248

Video classification with channel-separated convolutional networks

https://arxiv.org/abs/1904.02811

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

參考資料:

https://pytorchvideo.org/

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

相關焦點

  • 視頻識別SOTA模型都在這了—PySlowFast! Facebook AI Research開源視頻理解前沿算法代碼庫
    https://github.com/facebookresearch/SlowFast視頻理解是如今相當流行的研究方向,但不同於圖像相關的研究,視頻理解中龐大的數據集和巨大的模型,讓很多視頻研究難以開展。想要復現一個STOA的模型,更是可能耗時數周甚至數月。
  • Facebook開源多款AI工具,支持遊戲、翻譯
    翻譯 | 林椿眄編輯 | 阿司匹林出品 | AI科技大本營近日,Facebook 在年度開發者大會 F8 上宣布開源多款 AI 工具,除了 PyTorch、Caffe 等深度學習框架之外,此次開源的還包括 DensePose(可用於人體姿態估計)、Translate(可翻譯 48
  • 嵌入式AI簡報2021-07-18: 張江GPGPU們/微軟SuperBench/微軟MLPerf/PytorchVideo
    facebookresearch/pytorchvideo:Facebook AI開源最強全棧視頻庫:PyTorchVideo,讓手機跑SOTA模型快8倍!| 新智元項目: https://pytorchvideo.org/摘要:PyTorchVideo的真身是一個視頻理解的機器學習庫,可以服務於各種代碼庫,以及各類SOTA視頻模型模型和開源視頻模型。
  • Google、Facebook等不可錯過的 AI 開源工具,你想要的都在這裡!
    Facebook全部開源:https://ai.facebook.com/results/open-source/?開源地址:https://github.com/facebookresearch/PyTorch-BigGraph8、 CrypTen【Stars:274】
  • 基於Pytorch的開源電影分析工具箱
    【導讀】在全國電影院復工的第一個周末~ 本文將帶來一個基於Pytorch的開源電影分析工具箱,才開基本視頻處理、語義特徵提取、電影信息爬蟲等。
  • Facebook AI Research首次開源ICCV冠軍模型!視頻識別與行為檢測最新利器PySlowFast來了
    Facebook AI Research隆重推出視頻理解代碼庫PySlowFast,可幫助使用者在視頻識別、行為檢測等任務中輕易復現基線模型和諸多SOTA的算法。Facebook還首次開源了其在CVPR 2019行為檢測挑戰賽上的冠軍模型。戳右邊連結上 新智元小程序 了解更多!
  • 熱門機器學習開源資源最強盤點
    今天我們帶來了由 Mybridge 整理的 2018 年度熱門機器學習開源資源大盤點,值得一提的是,在這份列表中,出現了來自中國騰訊的貢獻的兩個資源。更多優質內容請關注微信公眾號「AI 前線」(ID:ai-front) 在過去的一年裡,我們比較了近 22000 個機器學習開源工具和項目,選出了前 49 個(約佔 0.22%)。
  • 2019 年不可錯過的 45 個 AI 開源工具
    與在 CPU 上計算工作相比,可以實現高達 100 倍的加速。這是一個全新的開源庫,旨在提高張量計算效率。https://github.com/google/tensornetworkGPipe 是一個分布式機器學習庫,使用同步隨機梯度下降和流水線並行技術進行訓練,適用於任何由多個序列層組成的 DNN。
  • Facebook 發布 Detectron2:基於 PyTorch 的新一代目標檢測工具
    目前已在 GitHub 上開源,雷鋒網 AI 開發者將其重要內容整理編譯如下。這意味著許多新的研究項目可以用數百行代碼編寫,而核心 Detectron2 庫和全新的研究之間可以實現完全分離。通過建立新模型並發現新方法,可以不斷完善模塊化和可擴展的設計,這也幫助 Detectron2 變得更加靈活。其模塊化特性也能夠使其更有效地幫助研究人員探索最先進的算法設計。
  • 比TFLite快2倍!FB開源移動深度學習優化庫QNNPACK
    在 MobileNetV2 等基準測試中,QNNPACK 在各種手機上的性能表現比之前最好的實現高出 2 倍。更多乾貨內容請關注微信公眾號「AI 前線」(ID:ai-front) 為了將最新的計算機視覺模型引入行動裝置,Facebook 開發了 QNNPACK,一個針對低強度卷積進行優化的函數庫。
  • PyTorch 1.0 穩定版正式發布!
    Torch Hub 支持使用簡單的 hubconf.py 文件將預訓練的模型(模型定義和預訓練的權重)發布到 github 存儲庫; 以 pytorch/vision 中的 resnet 模型為例,請參閱 hubconf for resnet models in pytorch/vision。
  • DGL-KE:亞馬遜開源知識圖譜嵌入庫,親測快到飛起
    DGL-KE:亞馬遜開源大規模知識圖譜嵌入訓練庫先說結論啊 這個庫的開源已經是去年(2020)的事情了,突然感覺時間好快~,當時並沒有在意,最近關注到這個庫是因為自己在訓練知識圖譜 Embedding 的時候做的一些調研,考慮到後續大規模知識圖譜的訓練,需要更快的開源庫,於是DGL-KE 重新回到我的視野!
  • 資源 | 讓手機神經網絡速度翻倍:Facebook開源高性能內核庫QNNPACK
    連結:https://github.com/pytorch/QNNPACK為了將最新的計算機視覺模型部署到行動裝置中,Facebook 開發了一個用於低密度卷積的優化函數庫——QNNPACK,用在最佳神經網絡中。
  • 12個領域,55部分, AI 學習資源全整理 | 資源
    中文視頻:https://www.bilibili.com/video/av36731342中文筆記:https://redstonewill.com/category/ai-notes/lin-ml-foundations/配套教材:
  • 新的PyTorch圖神經網絡庫,比前輩快14倍:LeCun盛讚,GitHub 2000星
    庫這個還很快,比起前輩DGL圖網絡庫,PYG最高可以達到它的15倍速度。應有盡有的庫要跑結構不規則的數據,就用PyG吧。不管是圖形(Graphs),點雲(Point Clouds)還是流形(Manifolds)。
  • 三行代碼自動生成SOTA模型!亞馬遜推出基於PyTorch的開源庫AutoGluon
    【新智元導讀】亞馬遜AWS推出新的基於mxnet的開源庫AutoGluon,只需三行代碼,自動生成高性能模型
  • 6月份最熱門的機器學習開源項目Top10
    更多優質內容請關注微信公眾號「AI 前線」(ID:ai-front) 這些開源項目對程式設計師很有用,希望你能找到一個能引起你興趣的有趣項目。英特爾人工智慧實驗室的 NLP 架構:探索最先進的 NLP 深度學習拓撲和技術的 Python 庫[Github 1194 顆星]當前版本的 NLP Architect 包含了從研究角度和實際應用都非常有趣的特性:NLP 核心模型可以為 NLP 工作流程提供強大的語言特徵提取功能:例如分析器(BIST)和 NP
  • Facebook 開源 AI 圍棋原始碼,擊敗職業棋手只需一塊GPU
    雷鋒網 AI 科技評論消息:5 月 2 日,Facebook AI Research(FAIR)官網博客中宣布開源其 AI 圍棋機器人 ELF OpenGo(包括原始碼和一個訓練好的模型),其目的則是創建一個開源實現的系統,該系統能夠自學圍棋進而達到人類職業棋手的水平或更高水平;同時他們也希望通過發布的代碼和模型,激勵更多的人去思考這項技術新的應用和研究方向。
  • Python 開源項目 GitHub 趨勢周報 - 20210101
    我是超級機器人 UltraBot,今天給大家推送本周 Python 開源項目 GitHub 趨勢周報,本周更新開源項目 71。這個開源項目需設置 cookie 來獲取微博訪問權限,後面會講解如何獲取 cookie 。如果不想設置 cookie,可以使用免 cookie 版,二者功能類似。
  • 【重磅】微軟Facebook聯手發布AI生態系統,CNTK+Caffe2+PyTorch挑戰TensorFlow
    隨著時間的推移,我們將完善ONNX和tracer來支持這些程序,讓開發人員可以充分利用PyTorch的靈活性與Caffe2的高性能強大部署功能。微軟:ONNX 表徵具有框架互操作性和共享優化兩大優點在 Facebook 發布博客的同時,微軟也發布了題為《微軟和 Facebook 為 AI 模型的互操作性構建開放生態系統》的博客。