PaddleVideo視頻理解模型再下一城!PP-TSN重磅發布

2022-01-21 飛槳PaddlePaddle
隨著多媒體、網絡和存儲技術的快速發展,視頻數據量呈現爆炸式增長。面對如此龐大的視頻數據,無論是處理還是監管都成了耗時耗力的難題!剪輯人員希望從比賽錄像中便捷地提取比賽集錦,上網課的老師希望隨時了解電腦攝像頭前的學生是否在安心聽講,短視頻網站希望能迅速給每個新作品打上標籤並推送給合適的用戶,監管部門也希望能精準地進行內容審核。但是面對千千萬萬的視頻數據,每個任務都分配給人去做顯然是不現實的,所以我們需要人工智慧的幫助!在深度學習的CV領域中,有個重要的研究方向就是視頻理解,簡而言之,就是通過AI技術讓機器可以理解視頻內容,如今在短視頻、推薦、搜索、廣告,安防等領域有著廣泛的應用和研究價值,像下面這種視頻打標籤、視頻內容分析之類的任務都可以通過視頻理解技術搞定!

視頻相較於圖像,具有額外的時間維度信息,因此如何更好地利用視頻中的時序信息是視頻領域研究的重點。目前常用的方法有三類:

使用RNN對視頻特徵做時序建模,如AttentionLSTM模型。這類模型的輸入是視頻特徵,而不是原始視頻,因此往往用作後處理模塊。

使用3D網絡提取時序信息。如SlowFast模型,創新性的使用Slow和Fast兩個網絡分支分別捕獲視頻中的表觀信息和運動信息。這一方法在很大程度上是受到靈長類視覺系統中視網膜神經節細胞的生物學研究所啟發。研究發現,在靈長類的視覺系統中,約80%是P細胞,15-20%是M細胞。M細胞以較高的頻率工作,對時間變化更加敏感;P細胞則提供良好的空間細節和顏色感知。相應的,SlowFast模型的Slow分支類似於P細胞,感知空間信息;Fast分支類似於M細胞,對時間變化敏感。該模型在視頻分類任務上取得了SOTA的效果,同時也是AVA 視頻檢測挑戰賽的冠軍模型。3D網絡儘管在精度方面很有優勢,但由於3D卷積計算量大,訓練和推理耗時較長,難以用於產業實踐。

使用2D網絡提取時序信息,如經典的TSN模型。TSN模型採用「段共識」的操作融合多幀圖像的特徵信息,能將絕大部分原本用於圖像分類的網絡模型進行擴展,通過簡單地修改輸入形式,就能直接用於下遊的視頻分類任務上。給後續許多模型提供了一種通用的思路。

依託豐富的視頻模型優化經驗,飛槳PaddleVideo團隊總結並完善了一套通用的視頻模型優化策略,在提出PP-TSM之後,研發團隊將這套策略應用於TSN模型並取得顯著收益,研發出PP-TSN模型。在基本不增加計算量的前提下,PP-TSN使用Kinetics-400數據集訓練的精度可以提升到75.06%,達到同等Backbone下的3D模型SlowFast的精度區間,且推理速度快5.6倍,在精度和性能的平衡上具有顯著的優勢。

1.模型精度以實際測試為準,所有模型採用同一份數據進行訓練測試。2.PP-TSN的Top1精度介於SlowFast的兩個版本之間,即達到同等Backbone下的3D模型SlowFast的精度區間。https://github.com/PaddlePaddle/PaddleVideo那PP-TSN到底採用了哪些優化策略呢?下面咱們帶領大家一起來深入剖析一下飛槳團隊算法優化的 「內功心法」。眾所周知Mix-up是圖像領域常用的數據增強方法,它將兩幅圖像以一定的權值疊加構成新的輸入圖像。PaddleVideo團隊通過合理擴展圖像Mix-up,將其引入到視頻數據增強中,讓兩個視頻以一定的權值疊加構成新的輸入視頻。實際操作中,我們首先要從一個視頻抽取固定數量的幀,並給每一幀賦予相同的權重,然後與另一個視頻抽出來幀按一定比例進行疊加作為新的輸入視頻。結果表明,Mix-up能有效提升網絡在時空上的魯棒性,增強模型的泛化能力。另外,相較於圖像,視頻由於多了時間維度,混合的方式可以有更多的選擇。Better Backbone:骨幹網絡可以說是一個模型的基礎,它決定了一個網絡是否能提取有效的特徵供後續任務使用,一個優秀的骨幹網絡會給模型的性能帶來極大的提升。針對PP-TSN,飛槳研發人員使用更加優異的ResNet50_vd作為模型的骨幹網絡,在保持原有參數量的同時提升了模型精度。ResNet50_vd是指擁有50個卷積層的ResNet-D網絡。如下圖所示,ResNet系列網絡在被提出後經過了B、C、D三個版本的改進。其中ResNet-B將Path A中1x1卷積的stride由2改為1,避免了信息丟失;ResNet-C將第一個7x7的卷積核調整為3個3x3卷積核,減少計算量的同時增加了網絡非線性;ResNet-D進一步將Path B中1x1卷積的stride由2改為1,並在其後添加了平均池化層,保留了更多的信息。Feature aggregation:對PP-TSN模型,在骨幹網絡提取特徵後,還需要使用分類器做特徵分類。實驗表明,在特徵平均之後分類,可以減少frame-level特徵的幹擾,獲得更高的精度。假設輸入視頻抽取的幀數為N,則經過骨幹網絡後,可以得到N個frame-level的特徵。分類器有兩種實現方式:第一種是先對N個frame-level特徵進行平均,得到video-level特徵後,再經過全連接層得到logits;另一種方式是先經過全連接層,得到N個frame-level的logits,再求平均。飛槳開發人員經過大量實驗驗證發現,採用第1種方式有更好的精度收益。Scale fc learning rate:在訓練過程中,我們給全連接層設置的學習率為其它層的5倍。實驗結果表明,通過給分類器層設置更大的學習率,有助於網絡更好的學習收斂,提升模型精度。標籤平滑是一種對分類器層進行正則化的機制,通過在真實的分類標籤one-hot編碼中真實類別的1上減去一個小量,非真實標籤的0上加上一個小量,將硬標籤變成一個軟標籤,達到正則化的作用,防止過擬合,提升模型泛化能力。假定訓練數據的分布和測試數據的分布是一致的,對於Batch Normalization層,通常在訓練過程中會計算滑動均值和滑動方差,供測試時使用。滑動均值的計算方式如下:但滑動均值並不等於真實的均值,尤其是在batchsize比較小的時候容易受到單次統計量不穩定的影響。因此為了獲取更加精確的均值和方差供BN層在測試時使用,在實驗中,我們會在網絡訓練完一個epoch後,固定住網絡中的參數不動,然後將訓練數據輸入網絡僅做前向計算,根據每個step的均值和方差計算出整體訓練樣本的平均均值和方差,代替原本的指數滑動均值和方差,以此提升測試時的精度。



知識蒸餾方案:Two Stages Knowledge Distillation

我們使用兩階段知識蒸餾方案提升模型精度。第一階段使用半監督標籤知識蒸餾方法對圖像分類模型進行蒸餾,以獲得具有更好分類效果的預訓練模型。第二階段使用更高精度的視頻分類模型作為教師模型進行蒸餾,以進一步提升模型精度。實驗中,將以ResNet152為backbone的CSN模型作為第二階段蒸餾的教師模型,在8 frame的訓練策略下,精度可以提升約1.3個點。最終PP-TSN精度達到75.06,超過同等backbone下的SlowFast模型。PaddleVideo團隊將一整套優化策略在PP-TSN、PP-TSM等模型上進行了多次成功實踐,歡迎廣大產業開發者或者科研人員展開進一步的探索。如果您覺得PP-TSN對您帶來了一些啟發或者確實實用的話,歡迎您在Github上給PaddleVideo項目Star一下,以便關注後續更多優秀的PP系列優化模型發布。


飛槳PaddleVideo項目二維碼

https://github.com/PaddlePaddle/PaddleVideo也歡迎感興趣的同學加入PaddleVideo技術交流群,與我們一起交流和技術探討。http://discuss.paddlepaddle.org.cn/歡迎加入官方QQ群獲取最新活動資訊:793866180。如果您想詳細了解更多飛槳的相關內容,請參閱以下文檔。https://www.paddlepaddle.org.cn/GitHub: https://github.com/PaddlePaddle/Paddle 
Gitee: https://gitee.com/paddlepaddle/Paddle

https://github.com/PaddlePaddle/PaddleVideo

https://gitee.com/paddlepaddle/PaddleVideo

飛槳(PaddlePaddle)以百度多年的深度學習技術研究和業務應用為基礎,集深度學習核心訓練和推理框架、基礎模型庫、端到端開發套件和豐富的工具組件於一體,是中國首個自主研發、功能豐富、開源開放的產業級深度學習平臺。飛槳企業版針對企業級需求增強了相應特性,包含零門檻AI開發平臺EasyDL和全功能AI開發平臺BML。EasyDL主要面向中小企業,提供零門檻、預置豐富網絡和模型、便捷高效的開發平臺;BML是為大型企業提供的功能全面、可靈活定製和被深度集成的開發平臺。

相關焦點

  • 視頻理解模型PP-TSM重磅發布:速度比SlowFast快4.5倍
    在深度學習的CV領域中,有個重要的研究方向就是視頻理解,簡而言之,就是通過AI技術讓機器可以理解視頻內容,如今在短視頻、推薦、搜索、廣告,安防等領域有著廣泛的應用和研究價值,像下面這種視頻打標籤、視頻內容分析之類的任務都可以通過視頻理解技術搞定!
  • PaddlePaddle重磅升級,Paddle Fluid v1.4版本發布
    正式發布模型壓縮工具包PaddleSlim和模型預測服務Paddle Serving,全面提升PaddlePaddle部署能力。優化分布式IO,增加遠程文件系統流式讀取能力。GPU多機多卡同步訓練通過增加稀疏通信能力提升帶寬不敏感訓練能力,在低配網絡帶寬網絡環境下,例如10G網絡下,同步訓練可提速10倍。
  • 飛槳TSM模型幫你做視頻理解
    視頻理解技術可以多維度解析視頻內容,理解視頻語義,自動分類打標籤,極大節省人工審核效率,節約成本;同時實現精準用戶推薦,提升體驗效果。 1. 跟TSM最相關的視頻理解模型當屬Limin Wang等人在ECCV2016上發表的Temporal Segment Network (TSN)了。TSN模型從視頻中採樣N幀圖像並通過最簡單直接地對N幀圖像分類結果進行平均的方式進行時序信息融合,取得了當時State-of-the-art的性能,並得到大規模的應用。
  • 【AI雜談-總結】PaddleLite OCR在RK Linux上部署
    ├── paddle_place.h│   │   ├── paddle_use_kernels.h│   │   ├── paddle_use_ops.h│   │   └── paddle_use_passes.h│   └── lib│   ├── libpaddle_api_light_bundled.a│   └── libpaddle_light_api_shared.so
  • PaddleDetection目標檢測套件
    除了功能,再來看看性能各模型結構和骨幹網絡的代表模型在COCO數據集上精度mAP和單卡Tesla V100上預測速度(FPS)對比圖paddledetection圖中模型均可在模型庫中獲取,地址是 https://github.com/PaddlePaddle/PaddleDetection
  • 百度飛槳口罩人臉檢測與識別模型再升級,視頻教學帶你實戰
    由於目前正值很多企業復工,口罩檢測對於後續復工的安全性毋庸置疑,文章一經發出,在開發者社區引起巨大反響,截至目前發稿,百度飛槳官方技術交流 QQ 群已經達到人數上限,再加入的同學,只能加入新群。在技術討論群裡,廣大開發者針對口罩人臉檢測與分類模型的技術應用展開了充分的討論,有些開發者實戰反饋,模型在實際場景下還是有一些提升空間。
  • 讓OCR更簡單 | PaddleOCR+OpenCV實現文字識別步驟與代碼演示
    使用測試後發現識別效果很好,對於簡單的應用(車票車牌身份證等),直接用項目提供的模型即可使用。特殊應用,可自己訓練後使用。gituhub地址:https://github.com/PaddlePaddle/PaddleOCR
  • 重磅開源:超輕量3.5M中英文OCR模型!
    先看下飛槳文字識別套件PaddleOCR自今年年中開源以來,短短幾個月在GitHub上的表現:7月,8.6M超輕量模型發布,GitHub Trending 全球日榜榜單第一!8月,開源CVPR2020頂會SOTA算法,再上GitHub趨勢榜單!9月,GitHub Star數量已超過3.2K, 近期又帶來哪些重磅更新?
  • 重磅開源:超輕量3.5M中英文OCR模型,小小身材大大出乎意料
    先看下飛槳文字識別套件PaddleOCR自今年年中開源以來,短短幾個月在GitHub上的表現:7月,8.6M超輕量模型發布,GitHub Trending 全球日榜榜單第一!8月,開源CVPR2020頂會SOTA算法,再上GitHub趨勢榜單!9月,GitHub Star數量已超過3.2K, 近期又帶來哪些重磅更新?
  • 工具組件 | 模型轉換工具X2Paddle操作大全
    項目地址:https://github.com/PaddlePaddle/X2PaddleX2Paddle最新發布的V0.3版本,包括tensorflow2fluid,caffe2fluid和onnx2fluid。對於TesorFlow和Caffe,我們還提供了它們與Paddle Fluid的常用API對比文檔。
  • 一文看懂如何使用模型轉換工具X2Paddle
    項目地址:https://github.com/PaddlePaddle/X2Paddle項目概覽X2Paddle最新發布的V0.3版本,包括tensorflow2fluid,caffe2fluid和onnx2fluid。對於TesorFlow和Caffe,我們還提供了它們與Paddle Fluid的常用API對比文檔。
  • 手把手教你PaddlePaddle 做詞向量模型 SkipGram實戰
    得到詞向量副產品;今天要講解的就是 SkipGram 模型就屬於第三種方法,它的主要思想是利用的詞義的分布式表示。筆者分析可能存在下面一些原因: SkipGram 用一個中心詞去預測上下文,這樣相當於對這個中心詞的表示要求更高,這就好像 一個學生(中心詞)同時受到了多個老師(上下文)的教導(這個學習的過程可以被理解為 中間的梯度傳播),效果肯定比一個老師教導多個學生(因此梯度是均分的,沒有區分性, 而且由於梯度均分,容易破壞一個窗口中詞向量的異構性)效果要好得多; 其次,SkipGram
  • PaddlePaddle深度學習開源平臺 :等待眾人划槳的中國AI大船
    數據和算法科學家本著應該把時間花在更有價值的研究和業務任務上來的目的,類似虛擬化發布地使用,進一步方便了大家,和虛擬機不同的是用 Docker 的方式,性能和直接安裝在本機是一樣的。以及圖像方面 keras下 minst 手寫數字識別對應的相關任務 demo 代碼就更多啦。
  • 手把手教你用PaddleOCR與PyQT實現多語言文字識別的程序
    他看了下論文,下圖為CRNN的網絡結構。整個網絡分為三個階段,首先輸入的圖片經過骨幹網絡卷積層得到feature map,之後經過雙向LSTM也就是圖片中的Recurrent層進一步抽取特徵,最後經過Transcription預測序列結果。看到這裡,小張對OCR算法有個整體的了解啦。他想著理論有了,怎麼實踐呢?作者告訴他,可以自己搭一個OCR識別服務加深理解。
  • Python裝逼指南——五行代碼實現批量摳圖,附視頻摳圖
    我們接下來需要使用的是這個平臺的 paddlehub 工具,所以我們還需要安裝 paddlehub :pip install -i https://mirror.baidu.com/pypi/simple paddlehub我們的實現步驟很簡單:導入模塊 -> 加載模型 -> 獲取圖片文件 -> 調用模塊摳圖。
  • PaddleWeekly | Wechaty社區大使帶你玩轉專屬微信Bot
    然而在本周AgentMaker再創新作PPIM-Seg!該模型通過灰度風格損失,灰度對抗損失和顏色重建損失三種全新的損失函數來進一步提升風格化的動漫視覺效果,同時縮減模型大小進一步提升了模型性能。項目作者Ryan906k9通過對PaddleHub預置的AnimeGAN模型進一步封裝,最終完成了視頻動漫化效果
  • 飛槳萬能轉換小工具X2Paddle,教你玩轉模型遷移
    雖然目前還不直接遷移PyTorch模型,但PyTorch本身支持導出為ONNX模型,等於間接對該平臺提供了支持。然而,有人還對存在疑惑:不同框架之間的API有沒有差異?整個遷移過程如何操作,步驟複雜嗎?遷移後如何保證精度的損失在可接受的範圍內?大家會考慮很多問題,而問題再多,歸納一下,無外乎以下幾點:1.
  • 再降64%,3.5M超輕量中英文OCR模型開源,身量縮減效果提升v4.1
    先看下飛槳文字識別套件PaddleOCR自今年年中開源以來,短短幾個月在GitHub上的表現:7月,8.6M超輕量模型發布,GitHub Trending 全球日榜榜單第一!8月,開源CVPR2020頂會SOTA算法,再上GitHub趨勢榜單!