?

基于ZYNQ平臺的圖像分類加速器設計與實現

2024-02-28 08:18周揚維尹震宇張飛青徐光遠徐福龍
小型微型計算機系統 2024年1期
關鍵詞:加速器嵌入式工件

周揚維,尹震宇,王 軍,張飛青,徐光遠,徐福龍

1(沈陽化工大學 計算機科學與技術學院,沈陽 110142)

2(中國科學院 沈陽計算技術研究所,沈陽 110168)

3(遼寧省國產基礎軟硬件工控平臺技術研究重點實驗室,沈陽 110168)

0 引 言

隨著中國制造2025戰略的逐步推進,智能制造業不斷發展,工廠中的生產制造過程也正變得越來越智能化和自動化[1].在智能制造的過程中,工件種類多且工件外觀相似度較高,依靠傳統分揀方式存在速度慢、準確率低的問題.因此,設計一種快速、準確的工件分類方法并將其應用于智能產線上具有重要意義.

目前,基于機器視覺的圖像分類技術已經逐步成為受工業界重點關注的技術之一.卷積神經網絡作為其重要算法,被廣泛應用于智能制造、自動駕駛和圖像識別等領域[2-5].近年來,隨著研究的不斷深入,為了提高分類的精度,網絡模型的層數也在不斷增加,但是更深的網絡深度使得網絡的參數量越來越大,對硬件資源的需求也越來越高,難以部署到資源受限的嵌入式平臺[6].本文針對智能產線上傳統分揀方法速度慢、準確率低、不能滿足智能化生產要求的問題,采用機器視覺技術解決工件的快速分類問題,將攝像頭采集的工件圖像輸入到部署在ZYNQ嵌入式平臺上的卷積神經網絡中,以實現快速分類的功能.

本文的主要工作內容總結如下:1)提出一種參數量較少的圖像分類模型SortNet網絡,在保證圖像分類準確率的同時減少了模型的參數量,降低了神經網絡硬件化過程中對嵌入式平臺硬件資源的要求,減小了在嵌入式平臺部署圖像分類模型的難度;2)設計了一種集圖像采集、圖像分類和分類結果顯示一體化的圖像分類加速器,將圖像采集模塊、顯示控制模塊以及SortNet網絡中計算并行度高的部分以寄存器傳輸級(Register Transfer Level,RTL)語言的方式部署到ZYNQ平臺的FPGA上,提高了圖像分類的速度;3)提出一種卷積與激活函數同構化的處理單元(Convolution and Activation Function Isomorphism Processing Element,CAFI-PE)和基于流水線的數據調用方法(Pipeline-based Data Calling Method,PDCM)),增加了網絡的并行度,減少了卷積運算所占用的時間;4)針對實際生產過程中的工件分類任務,制作了工件圖像數據集,并將設計的圖像分類加速器在工件圖像數據集上進行了實驗.經實驗驗證,本文提出的圖像分類加速器能在保證較高分類準確率的同時提高分類的速度,且功耗較低.

1 相關工作

近年來,圖像分類技術在機器視覺領域發展迅速,在人工神經網絡的背景下,基于卷積神經網絡的圖像分類技術逐漸成為各領域關注的熱點.張哲益等人提出一種基于脈沖卷積神經網絡稀疏表征的場景分類方法[7],該方法能夠對遙感圖像進行稀疏表征,并實現場景分類,但該方法目前僅能應用于靜態遙感圖像的分類;蔣健等人提出了一種多卷積神經網絡融合算法[8],用以解決卷積神經網絡分類準確率不高的問題,并將其用于醫學圖像分類,但該研究使用的是標準數據集,而且數據集的數據量較少,與實際的醫學圖像存在一定的差異,因此這項算法在應用中仍需進一步完善;Singh等人針對惡劣天氣下水果圖像分類效果差的問題,提出了一種基于Ⅱ型模糊的水果圖像改進方法[9]來提高天氣退化水果圖像的可視性,但此方法未能部署到嵌入式平臺,且便攜性不高.

在嵌入式平臺部署卷積神經網絡方面,吳健等人提出了一種基于FPGA的加速方法[10],來解決卷積神經網絡在嵌入式平臺部署需要消耗大量計算資源以及計算復雜度高等問題,該方法利用參數重排、乒乓緩存、相鄰層數據合并以及多通道傳輸等策略來減少數據傳輸所產生的時延;陳禹等人設計了一種基于卷積神經網絡的圖像分類識別方案[11],用以實現低功耗的圖像分類識別,該方案具有較好的通用性好且功耗較低,適合應用于邊緣計算環境中;龔豪杰等人提出了一種卷積并行加速架構[12],用以提升嵌入式平臺上卷積神經網絡的速度和能效,該研究利用卷積層和批量歸一化(Batch Normalization,BN)層融合算法降低了計算的復雜度,并通過層融合的分片設計,減少了片上存儲的資源消耗;潘坤榕等人為解決當前主流深度學習算法卷積神經網絡中計算量最大的卷積層的計算問題,提出了在Xilinx高層次綜合開發(High Level Synthesis,HLS)集成開發環境下的設計思路和優化方法[13],利用HLS開發門檻低、開發周期短的優勢設計了參數固定且具備通用性的卷積計算模塊;Park等人將經典網絡LeNet-5實現在嵌入式SoC平臺上[14],并使用了一種循環平鋪的技術來優化設計,達到了比桌面或嵌入式平臺上的其他傳統實現方案更高的單位能耗吞吐量.但上述研究都是基于HLS實現的,雖縮短了開發周期,但此類實現方式對硬件資源和時序的控制能力較低,靈活性較差,且容易生成一定的冗余邏輯.

本文在前人研究的基礎上,設計了一種基于ZYNQ平臺的圖像分類加速器.首先,提出一種參數量較少、準確率較高的圖像分類模型SortNet,減小了在ZYNQ嵌入式平臺部署卷積神經網絡的難度;針對卷積神經網絡在嵌入式平臺運行速度慢的問題,將圖像采集、分類結果顯示以及圖像分類模型中并行度較高的部分部署到ZYNQ平臺的FPGA上,并將其應用于智能產線中的工件分類場景中,最終實現了快速、準確和低功耗的工件分類.

2 系統設計與實現

2.1 輕量化圖像分類模型SortNet網絡設計

本文通過研究經典網絡模型AlexNet的網絡結構[15],結合一系列改進方法提出了一種參數量更少、準確率更高的圖像分類模型SortNet,其網絡結構如圖1所示.

圖1 SortNet網絡結構Fig.1 SortNet network structure

其中,SortNet網絡前4層均采用卷積+激活函數+池化的結構,卷積層使用5×5和3×3兩種尺寸更小的卷積核代替大卷積核,可以在保證感受野不變的前提下減少卷積層的計算量;采用修正線性單元(Rectified Linear Unit,ReLU)作為激活函數,以增加網絡的非線性和稀疏性,同時可以更好地避免出現梯度消失的現象;池化方式選用最大池化,以最大程度地保留圖像特征;在SortNet的第5層引入全局平均池化,用以對整個網絡的結構做正則化并防止過擬合現象的出現,且能達到直接降維、減少網絡參數的效果;最后一層使用全連接層,以完成自適應特征學習及分類過程.本文根據實際分類需要將輸出類別數設為10.

2.2 圖像分類加速器設計

2.2.1 總體框架設計

本文所提出的基于ZYNQ平臺的圖像分類加速器整體硬件架構如圖2所示.其中,可編程邏輯(Programmable Logic,PL)端,即ZYNQ平臺的FPGA部分,主要負責圖像的采集控制和預處理、分類結果的顯示控制,以及SortNet網絡中的并行計算;處理器系統(Processor System,PS)端,即ZYNQ平臺的ARM部分,主要負責對整個圖像分類加速器進行控制和調度.PL端包含圖像采集模塊、SortNet網絡、顯示控制模塊以及相關的數據通路;PS端包含攝像頭寄存器配置模塊、SD卡啟動配置模塊、串口輸出控制模塊、VDMA配置模塊以及存儲讀寫控制等模塊.

圖2 加速器整體硬件架構Fig.2 Overall hardware architecture of accelerator

本文設計的圖像采集模塊負責接收單目攝像頭采集到的16位彩色圖像數據并對其進行灰度化預處理;SortNet網絡對預處理后所得到的灰度圖像進行數據緩存和圖像分類,并將處理得到的分類結果輸出至AXI數據通路;顯示控制模塊則將由AXI數據通路傳輸而來的分類結果以字符和文字標簽的形式顯示在顯示器上;攝像頭寄存器配置模塊對單目攝像頭的寄存器進行配置并配合圖像采集模塊實現對攝像頭圖像采集的控制;SD卡啟動配置模塊對SD 控制器進行配置,其讀寫通道采用獨立的雙緩沖FIFO執行讀和寫操作,可使圖像分類加速器脫離集成開發環境(Integrated Development Environment,IDE)環境獨立運行,提高了圖像分類加速器的便攜性;串口輸出控制模塊用于接收SortNet的分類結果并打印信息;VDMA配置模塊用于實現AXI4-Stream接口與AXI4接口之間的高帶寬接入,且能夠實現雙緩沖以及多緩沖機制;存儲讀寫控制模塊用于對DDR存儲器地址分塊,以提高訪存效率.同時,本文使用了AXI4-Lite接口來傳輸分類結果,使用了兩個基于AXI總線的VDMA IP核來進行數據流的傳輸,分別將其配置為16位數據通路和32位數通路.其中16位數據通路用于向PS端傳輸數據,32位數據通路用于向PL端的SortNet網絡傳輸數據.部署在ZYNQ平臺上的SortNet網絡硬件架構如圖3所示,主要包含片上緩存模塊、參數預存模塊、卷積與激活函數同構化處理單元(包含乘法器陣列、加法樹以及ReLU函數)、最大池化模塊、FIFO、全局平均池化模塊以及全連接模塊.

圖3 SortNet網絡硬件架構Fig.3 SortNet network hardware architecture

SortNet網絡的工作過程為,在PL端時鐘信號的驅動下,圖像采集模塊將預處理后的圖像數據作為輸入特征圖緩存到片上緩存模塊;卷積與激活函數同構化處理單元接收到卷積計算開始的信號后,內部行列計數器和數據地址計數器開始計數,從片上緩存中讀取輸入特征圖圖像數據;同時,參數地址計數器計數,并從參數預存模塊中讀取預存的權重參數,與讀取的圖像數據一同送入乘法器陣列中進行乘法運算;然后,將乘法器陣列運算得到的所有乘積與偏置數據相加得到卷積計算的結果;再經過ReLU激活函數進行非線性變換并送至最大池化模塊;最大池化模塊對經過非線性變換的結果進行比較,并將得到的最大值送入FIFO中作為下一輪卷積運算的輸入特征圖圖像數據;經4次卷積運算后,全局平均池化模塊將FIFO中的數據讀出并進行平均數值計算,將得到的均值經VDMA的32位數據通路傳輸至DDR3存儲器中;PS端根據映射的內存地址讀取平均池化結果并將其傳輸至全連接層,經過全連接運算得到預測的分類結果并將其送入AXI-Lite總線對應的寄存器中,再傳輸至圖像顯示模塊的數據接收端.

2.2.2 卷積與激活函數同構化處理單元設計

研究[15]表明,卷積神經網絡中的卷積計算所消耗的時間最多,約占整個網絡的90%~95%,而全連接層則消耗了大約5~10%的計算時間以及95%的參數規模.由此可見,卷積計算在整個網絡中是耗時最多的.而卷積神經網絡中卷積計算和激活函數是彼此聯系又相互獨立的兩個部分,若在ZYNQ平臺上對其直接進行硬件化設計,兩者經綜合后所得到的電路結構也是彼此獨立的,這種獨立的結構會消耗較多的硬件資源,同時還會增加整個網絡運算的時間.本文提出了一種卷積與激活函數同構化的處理單元,將激活函數的運算過程與卷積運算過程進行融合,在每次卷積運算后直接進行激活運算.這種卷積與激活函數同構化處理單元在綜合后所得到的電路是一個整體,在提高運算速度的同時還能節省部分硬件資源,其算法偽代碼如表1所示.

表1 CAFI-PE算法偽代碼Table 1 Pseudocode of the CAFI-PE

2.2.3 基于流水線的數據調用方法設計

流水線技術是一種計算機并行處理技術,它利用一系列可以并行工作的處理模塊,把一個任務分成多個子任務,使每一個子任務分別在不同的處理模塊中完成,從而大幅度提高處理的效率,早期在復雜的超大規模集成電路設計中已有應用.本文對前人在流水線技術研究[16]的基礎上,設計了一種基于流水線的數據調用方法,使用流水線技術進行嵌入式平臺上卷積神經網絡中的數據調用,節省了卷積運算所占用的時間.

下面以224×224大小的輸入特征圖與5×5的卷積核進行卷積運算為例介紹這種數據調用方法.如圖4所示,在時鐘信號的驅動下,隨著行列計數器的變化,地址信號不斷累加,輸入特征圖的圖像數據在時鐘信號的下一個時鐘周期到達.其中,本文設計了5個位寬為5的寄存器來緩存輸入特征圖的圖像數據,第0號寄存器reg0[4:0]相較于輸入特征圖的圖像數據延遲一個時鐘周期進行數據調用,剩余寄存器相較于前一個寄存器延遲一個時鐘周期進行數據調用.這樣到第6個時鐘周期時5個寄存器中可同時調用5×5大小的輸入特征圖,并且以后每個時鐘周期都可調用同樣大小的輸入特征圖圖像數據,這樣可以實現每個時鐘周期進行一次卷積運算所需的數據調用,有利于提高卷積計算的并行度.相較于單寄存器調用圖像數據,用以上基于流水線的數據調用方法對圖像數據以及參數數據進行調用,可減少數據調用所占用的時間,進一步提高圖像分類加速器的處理速度.

圖4 基于流水線的數據調用方法Fig.4 Pipeline-based data calling method

3 實驗驗證

3.1 工件圖像數據集

為驗證本文所提出的圖像分類加速器的性能并針對工件分類任務實現快速的圖像分類,本文制作了10分類工件圖像數據集.首先,采集了智能產線中多種工件的原始圖像數據;然后對原始圖像數據進行數據清洗、歸一化等預處理操作,并通過旋轉、鏡像等方式將工件圖像增強至12000張,再對工件圖像數據進行類別標注;最后,將擴充后的工件圖像按照5:1的比例進行劃分,即從工件圖像中隨機選取10000張圖像作為訓練集,并將剩余2000張圖像作為測試集,最后將其保存為工件圖像數據集.

3.2 實驗平臺及主要參數

本文使用自制的10分類工件圖像數據集對SortNet網絡進行訓練及驗證,網絡訓練平臺的處理器型號為Intel(R)Xeon(R)Platinum 8255C,主頻為 2.50GHz,內存大小32GB,GPU型號為NVIDIA GeForce RTX 2080Ti,開發環境為PyCharm 2020.1.

本文使用的嵌入式實驗平臺是Xilinx ZYNQ7100開發板,其主要參數如表2所示,該開發板采用的是ARM+FPGA的架構,ARM處理器型號為Dual-Core ARM Cortex-A9,FPGA芯片型號為XC7Z100-2FFG900I,實驗中所使用的圖像傳感器為OV5640單目攝像頭.

表2 ZYNQ 7100開發板主要參數Table 2 Main parameters of ZYNQ 7100

本文使用MatlabR2022對參數文件進行格式轉換,并將轉換后的參數文件部署到ZYNQ嵌入式平臺;使用Vivado 2019.2軟件進行RTL代碼設計、綜合和布局布線,并生成比特流文件;使用Vitis 2019.2進行圖像分類加速器的流程控制以及調試,并使用ModelSim SE-64 2019.2對加速器各模塊進行仿真.

3.3 SortNet網絡訓練及實驗結果分析

為了驗證本文所提出的圖像分類網絡對工件的分類能力,在自制的工件圖像數據集上對SortNet網絡以及經典網絡模型AlexNet進行訓練.兩者在訓練集及測試集上的圖像損失及訓練和測試準確率如圖5所示.實驗結果表明,隨著網絡迭代次數的增加,兩種網絡模型均達到了較好的收斂狀態,網絡模型的訓練損失曲線呈現逐步下降狀態.經多次實驗統計以及計算,AlexNet網絡的圖像分類準確率約為95.51%,如圖5(a)所示;SortNet網絡的圖像分類準確率達到了98.17%,如圖5(b)所示,相較于AlexNet準確率提高了2.66%.

圖5 分類損失及訓練、測試準確率Fig.5 Classification loss and training and test accuracy

接下來再對兩個網絡的參數量進行比較,SortNet和AlexNet網絡參數量對比如表3所示.由表中數據計算可知,SortNet網絡的參數量約為AlexNet網絡的1/39,對硬件資源的需求大大減少,減小了在資源有限的嵌入式平臺部署圖像分類網絡的難度.

表3 SortNet與AlexNet參數量Table 3 Parameters of SortNet and AlexNet

3.4 圖像分類加速器性能測試及實驗結果分析

本小節對基于ZYNQ平臺的圖像分類加速器的加速效果、所消耗的硬件資源、功耗進行測試與分析,并與PS端的圖像分類方案進行數據對比.

3.4.1 加速效果測試與分析

本文設計的圖像分類加速器運行在100MHz時鐘條件下,來處理一張224×224大小的灰度圖像.使用Vitis2019.2自帶的Vitis Serial Terminal串口調試工具來測試基于ZYNQ嵌入式平臺的圖像分類加速器的實際分類速度,并與PS端的圖像分類方案作對比,對比結果如表4所示.

表4 加速方案數據對比Table 4 Comparison of acceleration schemes

由實驗結果可知,PS端的圖像分類方案處理一幀圖像所用的時間為322.9毫秒,即每秒能處理3.09幀圖像;本文提出的圖像分類加速器處理一幀224×224大小的圖像所用的時間為24.4毫秒,即每秒能處理40.98幀圖像,加速比約為13.26.

3.4.2 片上資源使用情況測試與分析

根據 Vivado2019.2 提供的綜合報告對FPGA片上資源利用情況進行分析,表5為基于ZYNQ平臺的圖像分類加速器在ZYNQ7100開發板上片上資源的占用情況.

表5 FPGA資源使用情況Table 5 FPGA resource usage

在圖像顯示控制模塊要預存部分標簽數據,分別為尺寸大小為224×224的彩色圖像標簽數據以及尺寸大小為300×70的文字標簽數據以供可視化輸出,因此對BRAM資源的使用率較高,占用率為50.26%.另外,本文對輸入特征圖圖像數據進行了灰度化預處理,且對權重和偏置參數值進行16位定點量化,因此在ZYNQ嵌入式平臺部署SortNet網絡及參數時對FPGA片上的計算與存儲資源消耗較低,其中,LUT占用資源數為10404,DSP占用資源數為34,LUTRAM占用資源數為340.

3.4.3 系統功耗測試與分析

由Vivado2019.2提供的功耗分析報告可知,部署在ZYNQ嵌入式平臺的圖像分類加速器總功耗為2.305W.其中,靜態功耗為0.268 W,在系統總功耗中占比12%,動態功耗為2.037W,在系統總功耗中占比88%.另外,該圖像分類加速器中PS端處理器的動態功耗所占的比例較高,約為系統動態功耗的76%,而PL端的運行功率只有0.268W,功耗相對較低,能夠滿足工業環境下低功耗的要求.

4 總 結

本文設計了一種基于ZYNQ平臺的圖像分類加速器,并將其應用于智能產線的工件分類場景中.實驗表明,該圖像分類加速器在使用較少硬件資源的情況下,能夠實現快速、準確的圖像分類,且功耗較低.在下一步工作中,考慮將更大的網絡硬件化到ZYNQ平臺上,以實現更加復雜的圖像識別與分類任務.

猜你喜歡
加速器嵌入式工件
莫比斯加速器眾創辦公空間
知識快餐店 科學加速器
全民小康路上的“加速器”
考慮非線性誤差的五軸工件安裝位置優化
搭建基于Qt的嵌入式開發平臺
三坐標在工件測繪中的應用技巧
嵌入式軟PLC在電鍍生產流程控制系統中的應用
等待“加速器”
焊接殘余形變在工件精密裝配中的仿真應用研究
Altera加入嵌入式視覺聯盟
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合