當前位置:
首頁 > 知識 > 業界首個視頻識別與定位工具集PaddleVideo重磅更新,前沿視頻模型等你用

業界首個視頻識別與定位工具集PaddleVideo重磅更新,前沿視頻模型等你用

機器之心發布

來源:百度飛槳

飛槳 (PaddlePaddle) 致力於讓深度學習技術的創新與應用更簡單。7 月初,隨著 Paddle Fluid 1.5 版本的發布,國內業界首個視頻識別與定位工具集 PaddleVideo 也迎來了重磅更新。

PaddleVideo 在實際工業界可以形成很多具體應用,包括:視頻精彩片段預測、關鍵鏡頭定位、視頻剪輯等任務,例如定位 NBA 籃球賽視頻中扣籃鏡頭,電視劇中的武打鏡頭等。如下圖所示:

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

1.PaddleVideo 是什麼?

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

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

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 相關賽事中斬獲冠軍。

了解了 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=jqzx2

通過 gitclone 命令下載代碼到本地。代碼結構說明如下:

3.1.數據準備

同時需要下載如下幾個數據文件: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.模型推斷

可通過如下命令進行模型推斷:

模型推斷結果存儲於 CTCN_infer_result.pkl 中,通過 pickle 格式存儲。

若未指定--weights 參數,腳本會下載已發布模型進行推斷。

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

4.典型案例

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

值得一提的是,以上視頻並不是人工剪輯的,完全是結合知識圖譜做出的智能化視頻生產。具體來說,首先運用知識圖譜的能力,我們根據視頻標題可以找到很多包含某些特殊動作類別的視頻,然後再運用 localization 的技術可以把每個視頻中的這些片段剪輯出來,組合成一個新視頻,然後用 NLP 的技術生成視頻標題分發出去。如果你覺得很有趣,不妨點擊文末的項目地址試了解一下。

好啦,本期飛槳 PaddleVideo 的介紹就告一段落啦。如果有興趣的同學,可以加入官方 QQ 群,您將遇上大批志同道合的深度學習同學。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

MIT發明10美元AI觸覺手套:既能識別物體,又能稱重,論文已上Nature
谷歌「我不是機器人」按鈕隱藏了,但你的隱私暴露了

TAG:機器之心 |