業界首個視頻識別與定位工具集PaddleVideo重磅更新 | 飛槳PaddlePaddle升級解讀

本文做者:楊蕊1002html

導讀:飛槳(PaddlePaddle)致力於讓深度學習技術的創新與應用更簡單。7月初,隨着Paddle Fluid 1.5版本的發佈,國內業界首個視頻識別與定位工具集PaddleVideo也迎來了重磅更新。PaddleVideo在實際工業界能夠造成不少具體應用,包括:視頻精彩片斷預測、關鍵鏡頭定位、視頻剪輯等任務,例如定位NBA籃球賽視頻中扣籃鏡頭,電視劇中的武打鏡頭等。以下圖所示:git

本文末尾,爲廣大算法和開發同窗準備了PaddleVideo模型實戰的應用案例,視頻剪輯、素材拼接和標題生成工做徹底是程序模型自動完成的,極大地減輕了人力剪輯的工做量,效果也還不錯。不過,在看具體模型具體應用以前,讓咱們能夠先來了解一下PaddleVideo。github

 

1.  PaddleVideo是什麼?

    PaddleVideo是飛槳在計算機視覺領域爲用戶提供的模型庫PaddleCV中的視頻識別與定位部分的模型庫。PaddleVideo的所有模型都是開源的,用戶能夠一鍵式快速配置模型完成訓練和評測。算法

PaddleVideo目前視頻分類和動做定位模型包括:json

2.     重磅更新內容詳解

    本次重磅更新要點以下:網絡

  • 增長動做定位模型C-TCN,該模型是2018年ActivityNet奪冠方案。
  • 增長已發佈的模型骨幹網絡,Non-local模型增長ResNet101和l3d網絡結構
  • 優化已經發布的分類模型,NeXtVLAD訓練速度提高60%,TSM訓練速度領先同類框架39%

 

首先是動做定位模型C-TCN。在介紹模型前,須要瞭解一下ActivityNet。框架

 

ActivityNet 是目前視頻理解領域影響力最大的賽事,與每一年的頂級學術會議 CVPR 一塊兒召開。在2019年的競賽中,百度公司計算機視覺團隊得到視頻動做提名、視頻動做檢測兩項任務的冠軍,並在新增任務 EPIC-Kitchens 動做識別挑戰賽中獲兩項測試集冠軍(Seen kitchens 和 Unseen kitchens)。 這已經是百度視覺團隊連續三年在 ActivityNet 相關賽事中斬獲冠軍。ide

    瞭解了ActivityNet比賽的含金量,咱們快來看一下第1條更新:C-TCN模型。工具

2.1.   動做定位模型C-TCN

問題背景:定位視頻中特定類別的時序動做片斷的動做起始時間和終止時間點並正確識別動做類別。性能

研究現狀:當前的主流作法是將視頻特徵(時間維度T*C單幀圖像特徵維度)沿着時間維度作一維卷積設計各類網絡結構1D-TCN,咱們實驗發現隨着網絡加深以後網絡的分類loss較淺層網絡結構會差不少,也就是說類別信息在1D時序卷積網絡中會隨着網絡變深而慢慢丟失,以下圖所示。所以,咱們設計了C-TCN,2D的保留類別信息的卷積,而且實驗證實了C-TCN的有效性。

CTCN卷積的過程以下圖:

用SSD+FPN框架加入了CTCN後,整個網絡結構以下圖:

在THUMOS14和ActivityNet1.3上都取得了較好的結果,以下圖:

2.2.   Non-local模型增長ResNet101和l3D網絡結構

具體來講,開發者選Non-local這個模型,以前版本只提供了最簡單的網絡結構,Resnet50 + C2D,這次版本更新,增長了兩個複雜一些的網絡結構:Resnet50 + I3D, 和 Resnet101 + C2D。

這裏給你們解釋一下Non-local模型的意思。

在CVPR 2018收錄的論文裏有一篇叫《Non-local Neural Networks》。論文中,做者提出了 non-local operation 來解決 CNN 網絡中的 long-range dependencies 問題。在論文中, 做者提出了 non-local operation 做爲一種通用的神經網絡的 building block 來捕捉基於 long-range 的依賴關係。受到經典的 non-local means 方法的啓發, non-local operation 會將某一位置的響應當作是一種從特徵圖譜全部位置的加權和來計算。

該 building block 能夠插入到如今計算機視覺的許多模型當中, 進而能夠提高分類, 檢測,分割等視覺任務的性能表現。

在PaddleVideo模型庫中Non-local模型專門用於視頻分類任務。

還有第3條更新: 優化已經發布的分類模型,NeXtVLAD訓練速度提高60%,TSM訓練速度領先同類框架39%。

 

2.3.   NeXtVLAD訓練速度提高60%,TSM訓練速度領先同類框架39%

以上的速度提高是指在一樣的硬件配置下,訓練速度比以前有了很大的提高。通過這次更新,NeXtVLAD模型訓練速度比TensorFlow快約1.88倍。採用的優化方法是將數據預處理部分浮點數相關的運算轉移到GPU上使用Paddle Op進行計算,而CPU上則使用uint8數據類型,能夠大幅減少從CPU到GPU數據拷貝的開銷。

3.  模型訓練、測試和推斷

    接下來,教你們如何使用PaddleVideo中模型,以本次重磅更新的模型C-TCN爲例子。

    首先進入GitHub的PaddleVideo相關頁面,地址以下:

https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleVideo?fr=ai5。

    經過gitclone命令下載代碼到本地。

    代碼結構說明以下:

3.1.   數據準備

C-TCN模型使用ActivityNet 1.3數據集,具體下載方法請參考官方下載說明http://activity-net.org/index.html

)。在訓練此模型時,須要先對mp4源文件抽取RGB和Flow特徵,而後再用訓練好的TSN模型提取出抽象的特徵數據,並存儲爲pickle文件格式。咱們將會提供轉化後的數據下載連接。轉化後的數據文件目錄結構爲:

同時須要下載以下幾個數據文件

Activity1.3_train_rgb.listformat,

Activity1.3_val_rgb.listformat,

labels.txt,est_val_label.list,val_duration_frame.list,並放到dataset/ctcn目錄下。

3.2.   模型訓練

數據準備完畢後,能夠經過以下兩種方式啓動訓練:

  • 從頭開始訓練,使用上述啓動腳本程序便可啓動訓練,不須要用到預訓練模型。
  • 可下載已發佈模型經過--resume指定權重存放路徑進行finetune等開發。

 

訓練策略:

  • 採用Momentum優化算法訓練,momentum=0.9。
  • 權重衰減係數爲1e-4。
  • 學習率在迭代次數達到9000的時候作一次衰減

3.3.   模型評估

能夠經過以下兩種方式啓動訓練:

  • 使用scripts/test/test_ctcn.sh進行評估時,須要修改腳本中的--weights參數指定須要評估的權重。
  • 若未指定--weights參數,腳本會下載已發佈模型進行評估。
  • 運行上述程序會將測試結果保存在json文件中,使用ActivityNet官方提供的測試腳本,便可計算MAP。

3.4.   模型推斷

可經過以下命令進行模型推斷:

  • 模型推斷結果存儲於pkl中,經過pickle格式存儲。
  • 若未指定--weights參數,腳本會下載已發佈模型進行推斷。

以上也是PaddleVideo中全部模型的具體使用方法。

4.  典型案例

PaddleVideo目前已經在典型領域有一些實際應用,咱們來看一個實際的視頻剪輯集錦;案例:《傷心鏡頭集錦:看誰最能打動人心》  

    值得一提的是,以上視頻並非人工剪輯的,徹底是結合知識圖譜作出的智能化視頻生產。具體來講,首先運用知識圖譜的能力,咱們根據視頻標題能夠找到不少包含某些特殊動做類別的視頻, 而後再運用localization的技術能夠把每一個視頻中的這些片斷剪輯出來,組合成一個新視頻,而後用NLP的技術生成視頻標題分發出去。若是你以爲頗有趣,不妨點擊文末的項目地址試瞭解一下。

 

好啦,本期飛槳PaddleVideo的介紹就告一段落啦。若是有興趣的同窗,能夠加入官方QQ羣,您將趕上大批志同道合的深度學習同窗。

 

飛槳官方QQ羣:432676488

   

若是您想詳細瞭解更多飛槳的相關內容,請參閱如下文檔。

官網地址:

https://www.paddlepaddle.org.cn?fr=ai5

項目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleVideo?fr=ai5

 

最後給你們推薦一個GPU福利 - Tesla V100免費算力!配合PaddleHub能讓模型原地起飛~ 掃碼下方二維碼申請~

原文連接地址:https://developer.baidu.com/topic/show/290241

相關文章
相關標籤/搜索