0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Temporal-Shift-Module在 FPGA上解決視頻理解問題的實用性和性能

OpenFPGA ? 來源:OpenFPGA ? 2023-07-07 10:47 ? 次閱讀

在這個項目中,將在線和離線 TSM 網(wǎng)絡(luò)部署到 FPGA,通過 2D CNN 執(zhí)行視頻理解任務(wù)。

1776a3c8-1c5e-11ee-962d-dac502259ad0.png

介紹

在這個項目中,展示了 Temporal-Shift-Module ( https://hanlab.mit.edu/projects/tsm/)在 FPGA 上解決視頻理解問題的實用性和性能。

TSM 是一種網(wǎng)絡(luò)結(jié)構(gòu),可以通過 2D CNN 有效學(xué)習(xí)時間關(guān)系。在較高級別上,這是通過一次對單個幀(在線 TSM)或多個幀(離線 TSM)執(zhí)行推理并在這些張量流經(jīng)網(wǎng)絡(luò)時在這些張量之間轉(zhuǎn)移激活來完成的。這是通過將shift操作插入 2D 主干網(wǎng)的bottleneck層(在本例中為 mobilenetv2 和 resnet50)來完成的。然后,該shift操作會打亂時間相鄰幀之間的部分輸入通道。

詳細(xì)的解析可以看下面的文章:

?

https://zhuanlan.zhihu.com/p/64525610

?

將這樣的模型部署到 FPGA 可以帶來許多好處。首先,由于 TSM 已經(jīng)在功效方面帶來了巨大優(yōu)勢,部署到 FPGA 可以進一步推動這一點。

TSM網(wǎng)絡(luò)結(jié)構(gòu)

我們將首先回顧這些 TSM 網(wǎng)絡(luò)的底層結(jié)構(gòu)以及到 DPU 兼容實現(xiàn)的轉(zhuǎn)換。TSM 網(wǎng)絡(luò)的核心結(jié)構(gòu)是插入骨干模型bottleneck層中的時間shift模塊,以實現(xiàn)時間建模。例如,插入shift操作后,TSM MobilenetV2 bottleneck層具有以下結(jié)構(gòu):

17a3a8b4-1c5e-11ee-962d-dac502259ad0.png

Online Shift

在演示的在線 TSM 網(wǎng)絡(luò)中,如果我們處于時間步驟 T,我們也處于推理輪 T。shift模塊將輸入通道的前 1/8 移位到包含來自上一推理輪的相同通道的shift緩沖區(qū)( T – 1)。然后,第 (T – 1) 輪的內(nèi)容被移入 T 輪的當(dāng)前張量。

Offline Shift

對于離線 TSM,如 resnet50 演示(當(dāng)前禁用)中所使用的,shift緩沖區(qū)被繞過。相反,我們將N 個相鄰的時間步驟作為批次中的張量進行處理。通道可以在批次內(nèi)直接移動,而不是將步驟 (T – 1) 中的通道存儲在緩沖區(qū)中。此外,這使得能夠訪問批次內(nèi)的未來回合(即推理步驟 T 可以與步驟 T + 1 存在于同一批次中)。通過這種訪問,離線shift也會將通道從步驟 T + 1 移位到步驟 T 的張量中。

DPU模型優(yōu)化

為了將TSM部署到 DPU,需要對原始 TSM 模型進行兩項重大更改。第一個是將shift模塊與網(wǎng)絡(luò)分離,因為我們無法使用支持的張量流操作來實現(xiàn)shift操作。為了實現(xiàn)這一目標(biāo),我們在每次出現(xiàn)shift模塊時對模型進行管道化。

17ca8920-1c5e-11ee-962d-dac502259ad0.png

通過將shift模塊放置在其自己的管道階段,我們可以靈活地從 DPU 內(nèi)核卸載shift操作。下面我們可以看到 MobilenetV2 在線 TSM 的前 4 個管道階段(從右到左)。如果比較兩個bottleneck層實現(xiàn),并刪除shift操作,則這對應(yīng)于以下轉(zhuǎn)換,其中bottleneck層在移位模塊之前包含 1 個輸出,在shift模塊之后包含 2 個輸入。一個輸入包含來自頂部分支的移位后張量,另一個輸入包含底部分支中未移位的殘差張量。

1801df7e-1c5e-11ee-962d-dac502259ad0.png

為簡單起見,這里我們使用 mobilenetV2 主干網(wǎng)來可視化 TSM,但 resnet-50 主干網(wǎng)也使用相同的方法。

為了實現(xiàn)這種流水線結(jié)構(gòu), Tensorflow 模型中有一個標(biāo)志,指示我們是否要生成不包括移位操作的拆分模型(用于 DPU 部署)或在 Tensorflow 中實現(xiàn)移位操作的普通統(tǒng)一模型。如果設(shè)置了分割標(biāo)志,則在每次移位操作之前添加新的輸出,并在移位后添加新的占位符,其中輸入移位后的輸入。

因為移位(shift)模塊僅插入到類似于上面所示的 3 級 MobilenetV2 瓶頸的結(jié)構(gòu)中,所以邏輯的實現(xiàn)得到了簡化。然而,對于 resnet 模型,我們確保在快捷路徑中的歸約邏輯之后插入移位管道階段。由于移位+卷積路徑在瓶頸層完成之前獨立于快捷路徑,因此快捷路徑上的操作可以放置在3個階段中的任何一個中。

DPU量化策略

雖然如上所述對模型進行流水線化簡化了轉(zhuǎn)換實現(xiàn),但由于我們的網(wǎng)絡(luò)不再是單個內(nèi)核,因此使 DPU 部署變得復(fù)雜。相反,我們?yōu)槊總€管道階段都有一個內(nèi)核,無需進行移位操作(MobilenetV2 為 11,resnet50 為 17)。

為了量化這樣的網(wǎng)絡(luò),我們必須為每個內(nèi)核提供未量化的輸入。為了生成這些信息,我們的模型可以在沒有管道階段的情況下生成。然后,我們直接在 Tensorflow 中對來自真實校準(zhǔn)數(shù)據(jù)集的幀進行推理,但是我們在每個管道邊界轉(zhuǎn)儲中間網(wǎng)絡(luò)狀態(tài)。轉(zhuǎn)儲的狀態(tài)包括需要饋送到 vai_q_tensorflow 的節(jié)點名稱等元數(shù)據(jù)以及相應(yīng)的張量數(shù)據(jù)。當(dāng)在校準(zhǔn)集中重復(fù)推理時,所有這些信息都會被“波及”。

轉(zhuǎn)儲此中間推理信息后,我們獲得了輸入 vai_q_tensorflow 的每個內(nèi)核的輸入張量。該邏輯全部由我們的tensorflow模型腳本和quantize_split.sh腳本中的DUMP_QUANTIZE標(biāo)志處理(項目結(jié)構(gòu)在“Deployment”部分中描述)。一旦對所有內(nèi)核運行量化,我們就可以為每個內(nèi)核生成一個 ELF 文件,就可以集成到我們的主代碼中。

演示

下面我們介紹 2 個平臺(ZCU104 和 Ultra96V2)和 2 個模型(MobilenetV2 Online TSM 和 Resnet50 Offline TSM)的性能細(xì)分。我們將 FPS 計算為 1/(預(yù)處理 + 推理延遲)。

MobilenetV2 在線 TSM 延遲:

ZCU104 (60.1 FPS) - B4096,300MHz,RAM 高,啟用所有功能

185fa168-1c5e-11ee-962d-dac502259ad0.png

Ultra96V2 (38.4 FPS) - B2304,300MHz,RAM 低,啟用所有功能

188ff282-1c5e-11ee-962d-dac502259ad0.png

現(xiàn)在,我們可以將推理延遲與之前在移動設(shè)備和 NVIDIA Jetson 平臺上收集的 TSM 數(shù)據(jù)進行比較。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21623

    瀏覽量

    601242
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2655

    瀏覽量

    47293
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    7485

    瀏覽量

    88543

原文標(biāo)題:在這個項目中,將在線和離線 TSM 網(wǎng)絡(luò)部署到 FPGA,通過 2D CNN 執(zhí)行視頻理解任務(wù)。

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Labview FPGA Module有人用過嗎?

    本人是Labview小白,剛接觸,有個問題想請教大家,我看labview介紹有FPGA Module,有人用過嗎?使用FPGA Module開發(fā)的代碼能下載到自己開發(fā)的
    發(fā)表于 03-08 22:09

    深刻認(rèn)識Shift RAM學(xué)習(xí)筆記

    3x3矩陣,FPGA中生成3x3矩陣有以下三種方法:(1)通過2個或者3個RAM的存儲來實現(xiàn)3X3像素窗口;(2)通過2個或者3個FIFO的存儲來實現(xiàn)3X3像素窗口;(3)通過2行或者3行
    發(fā)表于 08-31 10:57

    Checkpoints_and_Temporal_Separation

    Checkpoints_and_Temporal_Separation
    發(fā)表于 01-25 10:18

    簡單語法怎么理解

    repeat(size)beginif(shift_opb[1])result = result + shift_opa;shift_opa = shift_opa 1;end這段程序
    發(fā)表于 05-27 04:35

    SPI slave無法理解語法

    這里找到了一個SPI slave verilog模塊代碼開始時,autthor使用傳輸SCK與FPGA時鐘同步//使用3位移位寄存器將SCK同步到FPGA時鐘reg [2:0] SCKr;總是
    發(fā)表于 06-14 10:30

    實用性很強的程序分享!

    借原子哥寶地。。。。很多實用性很強的程序,一定會解決你壘碼時遇見的問題,歡迎來看看??!幫收藏下也好.......https://shop60994719.taobao.com
    發(fā)表于 08-19 21:50

    FPGA與ASSP視頻處理相比有什么不同?

    隨著數(shù)字融合的進一步發(fā)展,系統(tǒng)的設(shè)計和實現(xiàn)需要更大的靈活性,以解決將完全不同的標(biāo)準(zhǔn)和要求整合為同類產(chǎn)品時引發(fā)的諸多問題。本文介紹FPGA視頻處理中的應(yīng)用,與ASSP和芯片組解決方案相比,FP
    發(fā)表于 08-22 08:21

    視頻監(jiān)控系統(tǒng)中使用FPGA進行視頻處理

    視頻監(jiān)控系統(tǒng)中使用FPGA進行視頻處理:視頻監(jiān)控系統(tǒng)是火車站,機場,銀行,娛樂場所,購物中心乃至家庭保安的重要組件。 您可以使用xili
    發(fā)表于 09-22 08:12 ?36次下載

    XtremeDSP視頻入門套件(VSK)加速FPGA上的視頻

    隨著下一代視頻壓縮標(biāo)準(zhǔn)問世,行業(yè)從基本視頻處理向更復(fù)雜的集成處理解決方案轉(zhuǎn)移,這使得系統(tǒng)的要求超越了獨立DSP力所能及的視頻性能
    發(fā)表于 07-17 08:56 ?643次閱讀

    通過XtremeDSP視頻入門套件加速FPGA上的視頻應(yīng)用開發(fā)

    隨著下一代視頻壓縮標(biāo)準(zhǔn)問世,行業(yè)從基本視頻處理向更復(fù)雜的集成處理解決方案轉(zhuǎn)移,這使得系統(tǒng)的要求超越了獨立DSP力所能及的視頻性能。
    的頭像 發(fā)表于 05-13 08:07 ?1341次閱讀
    通過XtremeDSP<b class='flag-5'>視頻</b>入門套件加速<b class='flag-5'>FPGA</b>上的<b class='flag-5'>視頻</b>應(yīng)用開發(fā)

    如何使用FPGA視頻圖像領(lǐng)域的應(yīng)用視頻教程資料免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用FPGA視頻圖像領(lǐng)域的應(yīng)用視頻教程資料免費下載。
    發(fā)表于 02-26 11:02 ?16次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>在</b><b class='flag-5'>視頻</b>圖像領(lǐng)域的應(yīng)用<b class='flag-5'>視頻</b>教程資料免費下載

    FPGA視頻教程之FPGA視頻圖像處理領(lǐng)域的應(yīng)用視頻資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA視頻教程之FPGA視頻圖像處理領(lǐng)域的應(yīng)用視頻資料說明。
    發(fā)表于 04-04 16:40 ?35次下載
    <b class='flag-5'>FPGA</b><b class='flag-5'>視頻</b>教程之<b class='flag-5'>FPGA</b><b class='flag-5'>在</b><b class='flag-5'>視頻</b>圖像處理領(lǐng)域的應(yīng)用<b class='flag-5'>視頻</b>資料說明

    FPGA視頻處理中的應(yīng)用綜述

    FPGA視頻處理中的應(yīng)用綜述
    發(fā)表于 06-19 10:37 ?18次下載

    傳音InfinixCES 2024上推出最新突破技術(shù)E-Color Shift

    近日,傳音旗下品牌InfinixCES 2024上推出最新突破技術(shù)E-Color Shift,可以使手機背面面板不消耗電力的情況下改變并保持鮮艷的顏色。
    的頭像 發(fā)表于 01-23 11:39 ?1067次閱讀

    Credo發(fā)布HiWire SHIFT AEC新品

    該新系列SHIFT AEC產(chǎn)品是基于Credo先進的800G HiWire AEC設(shè)計優(yōu)化而來,能效卓越,性能更佳,且具有極致的可靠
    的頭像 發(fā)表于 09-12 14:07 ?229次閱讀