當前位置:首頁 > 工業(yè)控制 > 電路設(shè)計項目集錦
[導(dǎo)讀]背景:隨著人們對鐵路運輸安全的要求越來越高,傳統(tǒng)的軌道檢測方法需要工人定期沿著軌道行走,觀察軌道的磨損、變形和裂縫。該方法雖然可以直觀地檢測到一些明顯的故障,但耗時、費力、效率低。這種方法已不能滿足現(xiàn)代鐵路系統(tǒng)的需要。為了解決鐵路故障檢測的自動化和高效性問題,本課題開發(fā)了一種基于FPGA的鐵路故障檢測系統(tǒng)。該邊緣人工智能系統(tǒng)通過攝像頭捕捉軌道圖像,利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)實時檢測軌道缺陷,并自動報告故障信息。

利用AMD現(xiàn)場可編程門陣列(FPGA)硬件部署量化和改進的神經(jīng)網(wǎng)絡(luò)用于軌道故障檢測,解決了在資源受限的邊緣設(shè)備上實現(xiàn)自動軌道缺陷檢測的挑戰(zhàn)。

背景:隨著人們對鐵路運輸安全的要求越來越高,傳統(tǒng)的軌道檢測方法需要工人定期沿著軌道行走,觀察軌道的磨損、變形和裂縫。該方法雖然可以直觀地檢測到一些明顯的故障,但耗時、費力、效率低。這種方法已不能滿足現(xiàn)代鐵路系統(tǒng)的需要。為了解決鐵路故障檢測的自動化和高效性問題,本課題開發(fā)了一種基于FPGA的鐵路故障檢測系統(tǒng)。該邊緣人工智能系統(tǒng)通過攝像頭捕捉軌道圖像,利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)實時檢測軌道缺陷,并自動報告故障信息。

項目市場價值分析

利用FPGA進行鐵路軌道檢測可以解決幾個關(guān)鍵問題,包括:

?事故預(yù)防:鐵路軌道上的缺陷,如裂縫、磨損和腐蝕,是火車出軌的主要原因。如果不及時發(fā)現(xiàn)和修復(fù)這些缺陷,將對乘客和貨物的安全構(gòu)成嚴重威脅。自動檢查系統(tǒng)可以及早發(fā)現(xiàn)這些問題,從而防止事故的發(fā)生。

?提高效率:傳統(tǒng)的人工檢測方法效率低,容易出錯。相比之下,F(xiàn)PGA與深度學(xué)習(xí)和計算機視覺技術(shù)相結(jié)合,可以顯著提高檢測效率和準確性,減少人為干預(yù)的需要。

?實時性和準確性:fpga提供并行處理能力,實現(xiàn)實時數(shù)據(jù)處理和分析。這對于需要持續(xù)監(jiān)測和快速響應(yīng)的鐵路應(yīng)用至關(guān)重要。

市場潛力

廣泛的市場需求:隨著全球鐵路網(wǎng)絡(luò)的擴展和升級,對高效可靠的鐵路軌道檢測系統(tǒng)的需求日益增加。鐵路運輸?shù)念l繁使用和鐵路線路的不斷延長,使軌道檢查成為一個迫切需要解決的問題。

?技術(shù)優(yōu)勢:FPGA結(jié)合深度學(xué)習(xí)技術(shù)應(yīng)用于鐵路軌道檢測,不僅提高了檢測的速度和準確性,而且減少了環(huán)境和人為因素造成的誤差。這使該項目在技術(shù)上具有強大的競爭優(yōu)勢。

?經(jīng)濟效益:通過提高檢查效率,減少事故的發(fā)生,鐵路運營公司可以降低維修成本和事故賠償費用。此外,盡量減少事故造成的運輸中斷可以提高運營效率和經(jīng)濟效益。

?初步探索:通過Vitis AI進行設(shè)計和部署嘗試

除了傳統(tǒng)的流程,AMD還提供了一個名為Vitis AI的強大工具。此工具鏈提供了優(yōu)化的IP、工具、庫、模型以及資源,例如在整個開發(fā)過程中幫助用戶的示例設(shè)計和教程。它的設(shè)計考慮到高效率和易用性,在AMD自適應(yīng)soc和Alveo數(shù)據(jù)中心加速卡上釋放AI加速的全部潛力。這種方法比傳統(tǒng)工藝簡單得多。我們還嘗試從AMD的模型動物園中訓(xùn)練Resnet18網(wǎng)絡(luò),優(yōu)化它,并使用Vitis AI部署它。以下內(nèi)容概述了總體開發(fā)過程:

搭建環(huán)境:在運行Ubuntu的主機上安裝Docker: xilinx/kria developer: 2022.1。這個Docker環(huán)境對應(yīng)于我們正在使用的Vitis AI v3.0版本。

量化模型:在Docker環(huán)境中,Vitis AI提供的強大工具可用于分析、量化和導(dǎo)出模型。S只需導(dǎo)入訓(xùn)練好的模型(.pth)文件,用很短的命令完成模型檢測和量化過程。

接下來,使用vai_c_xir工具來編譯模型。此時,編譯后的(.xmodel)文件就可以在duczdx8g體系結(jié)構(gòu)上運行了。

將Vitis AI對應(yīng)的Petalinux鏡像刻錄到Kria KR260上,加載對應(yīng)的DPU固件,導(dǎo)入模型和測試數(shù)據(jù),使用Vitis AI運行時API直接運行。

然而,最終我們并沒有選擇這種方法來進行軌道誤差識別的開發(fā)。我們需要一個更快、更輕的網(wǎng)絡(luò)設(shè)計,以及與機器人汽車控制和ESP8266模塊的集成。最后,我們決定進行全新的網(wǎng)絡(luò)設(shè)計和部署。

貢獻:

為了減小模型尺寸并在Kria KR260開發(fā)板上部署合適的鋼軌缺陷檢測模型,實現(xiàn)機器人汽車的上位機通信和部署,本項目采用五步方法:

?設(shè)計一個專門適應(yīng)KR260開發(fā)板資源的神經(jīng)網(wǎng)絡(luò)模型。

?對模型參數(shù)進行訓(xùn)練后量化,采用混合精度量化(不同模塊和精度要求的量化位寬不同)。

?使用AMD HLS工具提高編碼效率。

?通過WiFi通信模塊實現(xiàn)與上位機的通信。

?集成車載通信協(xié)議,實現(xiàn)KR260對機器人汽車平臺的控制。

本項目中使用的神經(jīng)網(wǎng)絡(luò)架構(gòu)如圖所示。本設(shè)計基于ResNet網(wǎng)絡(luò)結(jié)構(gòu),保留了基本的殘塊結(jié)構(gòu)。輸入圖像大小為128x128。對數(shù)據(jù)集進行過濾,并將其分為兩類:有缺陷的圖像和沒有缺陷的圖像。數(shù)據(jù)增強技術(shù),如模糊,噪聲添加,隨機翻轉(zhuǎn)和旋轉(zhuǎn)應(yīng)用。

?模型參數(shù):261 kb

?MAC操作:24.66M

?準確率:88.9%

參數(shù)提取和環(huán)境設(shè)置:

在確定最佳模型后,需要在FPGA上提取參數(shù)進行推理。有兩種方法可以做到這一點:

使用中子網(wǎng)站提取模型權(quán)重和偏差。

編寫Python代碼來提取模型參數(shù)也是一種可靠的方法。

開發(fā)環(huán)境配置:參數(shù)提取完成后,使用Vitis HLS 2022.2進行PyTorch神經(jīng)網(wǎng)絡(luò)模型的推理過程。需要進行以下環(huán)境配置:

Vivado HLS:選擇Kria KR260作為目標,流量目標設(shè)置為Vivado IP flow target。

導(dǎo)入源文件和測試臺文件。在源中包含先前提取的權(quán)重和偏差。

在Vivado 2022.2中,為Kria KR260開發(fā)板創(chuàng)建一個項目,并使用PYNQ在處理系統(tǒng)(PS)和可編程邏輯(PL)之間進行通信。

處理系統(tǒng)(PS)是指通常由嵌入式處理器組成的系統(tǒng)。它負責執(zhí)行大多數(shù)軟件任務(wù),包括操作系統(tǒng)、應(yīng)用程序和驅(qū)動程序。PS可以處理高級計算任務(wù),并提供廣泛的外設(shè)接口,如串行通信、以太網(wǎng)、USB等。在PYNQ框架中,PS通常運行Python代碼,管理控制和數(shù)據(jù)處理。

可編程邏輯(PL)是指系統(tǒng)中通常由FPGA構(gòu)成的部分。PL用于實現(xiàn)硬件加速,并且可以根據(jù)需要動態(tài)配置為不同的硬件電路,以提高特定任務(wù)的執(zhí)行效率。PL適用于并行處理、廣泛的數(shù)據(jù)處理和自定義硬件功能。在PYNQ框架中,PL可以使用硬件描述語言(如VHDL或Verilog)或高級合成工具(如Vivado HLS)進行編程,允許用戶通過Python接口配置和利用這些硬件加速模塊。

Kria KR260開發(fā)板需要使用PYNQ環(huán)境進行閃現(xiàn)。

代碼的解釋:

HLS代碼部分:

這是一個標準的卷積運算。輸入圖像大小為128x128,卷積核大小為5x5,輸出通道號為32。

卷積層是cnn的核心構(gòu)建塊,也是大多數(shù)計算發(fā)生的地方。

這是一個標準的最大池化操作,用于縮小圖像大小并提取特征。池化層(也稱為子采樣)執(zhí)行下采樣,減少輸入中的參數(shù)數(shù)量。像卷積層一樣,池化操作在整個輸入上滑動一個過濾器。然而,與卷積濾波器不同的是,這個濾波器沒有權(quán)重。相反,內(nèi)核對其接收字段中的值應(yīng)用聚合函數(shù),填充輸出數(shù)組。當過濾器移動到輸入上時,最大池選擇要發(fā)送到輸出數(shù)組的最大值像素。

在編寫了所有HLS代碼之后,需要進行合成和聯(lián)合仿真操作。

通過這兩個步驟,我們可以檢查資源使用和計時錯誤,從而生成綜合報告。通過Co-simulation后,通過運行export RTL命令導(dǎo)出RTL設(shè)計,該命令將寫入活動解決方案的impl文件夾。zip文件是IP及其內(nèi)容的zip歸檔文件,可以直接添加到Vivado IP目錄中。

在完成HLS部分后,我們轉(zhuǎn)移到之前創(chuàng)建的Vivado項目,開始塊設(shè)計過程。首先,找到導(dǎo)入hls生成的IP包的設(shè)置。

塊設(shè)計是FPGA硬件系統(tǒng)圖形化設(shè)計和管理的一種方法。它允許開發(fā)人員通過圖形界面更直觀地創(chuàng)建和配置硬件設(shè)計。塊設(shè)計支持模塊化設(shè)計,使開發(fā)人員能夠?qū)?fù)雜的硬件功能劃分為多個獨立的模塊,每個模塊都可以單獨設(shè)計、測試和驗證。這些模塊可以是預(yù)定義的IP核或自定義硬件邏輯。

設(shè)置完成后,在左側(cè)列表中選擇“創(chuàng)建塊設(shè)計”。導(dǎo)入PS模塊和IP模塊,并進行連接。Vivado可以自動生成IP核之間的連接,減少手工布線的錯誤和復(fù)雜性,包括總線接口、時鐘信號和復(fù)位信號。

驗證連接是否正確,然后繼續(xù)進行合成、實現(xiàn)和比特流生成。合成是將高級HDL(如VHDL或Verilog)代碼轉(zhuǎn)換為門級網(wǎng)表的過程,該網(wǎng)表描述了特定的邏輯門及其連接。在合成過程中,Vivado解析設(shè)計代碼,執(zhí)行邏輯優(yōu)化,刪除冗余邏輯,并將其映射到FPGA的基本邏輯單元(如查找表和觸發(fā)器)。

實現(xiàn)過程的目標是確保設(shè)計在FPGA上正確運行,并滿足所有時間和資源限制。生成比特流將實現(xiàn)的設(shè)計轉(zhuǎn)換為可下載到FPGA的二進制文件。位流包含配置FPGA的內(nèi)部邏輯和連接所需的所有信息,并在上電或重新配置時加載到FPGA中。生成比特流后,開發(fā)人員可以將其下載到FPGA中,使其根據(jù)設(shè)計邏輯和連接進行操作。

在寫入比特流之后,在Vivado項目目錄中找到三個重要的文件:(.tcl,。Bit和。hwh)文件。TCL腳本文件用于自動化和管理FPGA設(shè)計流程。

(.tcl)文件通常包含一系列用于設(shè)置項目、綜合設(shè)計、實現(xiàn)設(shè)計和生成位流的命令。

(.bit)文件是由Vivado生成的二進制文件,包含配置FPGA所需的所有信息。該文件可以直接下載到FPGA芯片上,使FPGA按照設(shè)計的邏輯和連接進行工作。

(.hwh)文件是描述硬件設(shè)計的高級元數(shù)據(jù)文件,通常與PYNQ和其他嵌入式系統(tǒng)相關(guān)聯(lián),包含有關(guān)硬件設(shè)計的詳細信息,例如IP核、總線連接和寄存器映射。

PYNQ開發(fā)和主板測試:

上電Kria KR260開發(fā)板,打開Jupyter可視化界面。

上傳所需的項目文件并創(chuàng)建a.p ipynb文件來編寫PYNQ代碼。

使用overlay導(dǎo)入位文件的內(nèi)容來調(diào)用PL端。

通過地址讀取和傳遞圖像信息和識別結(jié)果。查找地址的方法如下:在Vitis HLS中找到.h文件,然后找到輸入和輸出地址位置。

測試成功后,KR260可用于鋼軌缺陷檢測。

數(shù)據(jù)集增加:

第一步是對圖像進行基本的圖像增強操作,包括水平鏡像和垂直鏡像。

在此基礎(chǔ)上,對所有鏡像處理后的圖像進行45°翻轉(zhuǎn)操作。此時,一個圖像已經(jīng)擴展到8個圖像。

最后,在之前的基本增強之后,對每個圖像執(zhí)行四種不同的處理:模糊,鹽,亮白和暗化。

通過數(shù)據(jù)增強,每張原始圖像被擴展到40張。

ESP8266的開發(fā)及與上位機的通信

使用Arduino編寫和開發(fā)程序,首先將開發(fā)板接口和配置設(shè)置為“Generic ESP8266 Module”,并加載相應(yīng)的工具環(huán)境包。

在開發(fā)過程中,兩個庫ESP8266WiFi.h和WifiLocation.h分別用于ESP8266網(wǎng)絡(luò)和地理位置獲取。

在使用ESP8266連接上位機時,由于上位機使用套接字協(xié)議,ESP8266的編程也遵循同樣的設(shè)計。連接WiFi后,打開socket服務(wù)器等待連接。實現(xiàn)了基本的數(shù)據(jù)收發(fā),以及接收到“sendLocation”命令后的地理位置信息傳輸:

地理位置信息通過谷歌API獲取,需要使用谷歌API密鑰進行訪問和時鐘信息,以便在通話過程中獲取具體的位置信息。在確保代碼能夠正常工作后,由于本項目選擇的ESP8266是DevSKit,因此可以通過microrousb進行刻錄和通信,可以通過串口連接ESP8266并將上傳速度設(shè)置為115200進行刻錄。

最終實際運行的上位機如下所示:

機器人車的功能和使用方法:

機器人車配備了多個模塊,但在本項目中主要使用的是伺服云臺和四輪驅(qū)動電機。該車配備了一個定制的驅(qū)動板和一個STM32核心板進行基本控制。整個驅(qū)動板由一個PR12V鋰電池組供電,通過microrousb與KR260連接,進行串行通信。

伺服轉(zhuǎn)盤傾斜部分由兩個伺服電機組成,控制轉(zhuǎn)盤的左右旋轉(zhuǎn)和上下俯仰角的調(diào)節(jié)。配備高清USB攝像頭,實現(xiàn)精準切割、定位、采集。通過對伺服云臺的精確控制,攝像機可以準確地捕捉到鐵路軌道的每一個信息。

該車使用四個電機分別控制四個車輪,實現(xiàn)四輪驅(qū)動,使其能夠快速加速和減速前進和后退。同時,由于是四輪驅(qū)動,該車的轉(zhuǎn)向系統(tǒng)采用四輪差速轉(zhuǎn)向,實現(xiàn)靜止轉(zhuǎn)向。這種靈活的機動性適合在狹窄的環(huán)境中工作,使其成為鐵路軌道上工作條件的理想選擇。

該車集成了一套指令操作系統(tǒng),封裝了各個模塊的特定時鐘、中斷等一系列復(fù)雜的基本操作。通過串口接收指令,可以直接實現(xiàn)指令的相應(yīng)功能,如將汽車伺服云臺操作到一定角度。以下是一些基本說明:

具體來說,我們設(shè)計了一個單獨的伺服云臺控制指令系統(tǒng)。汽車的整個程序是使用Keil μVision V4.10編寫和燒錄的。以下是伺服框架控制協(xié)議的示例(示例命令為$4WD, PTA180, PTB90, PTC90#)

所有指令都通過串口接收,Kria KR260可以通過PYNQ終端實現(xiàn)對汽車的完全控制。

結(jié)論:

本項目通過在Kria KR260 FPGA平臺上部署神經(jīng)網(wǎng)絡(luò),并將整個系統(tǒng)集成到機器人汽車中,實現(xiàn)了實時準確的鋼軌缺陷檢測。通過WiFi通信將檢測到的鋼軌缺陷信息上傳到上位機,實現(xiàn)遠程監(jiān)控和數(shù)據(jù)分析。這也反映了使用AMD工具實現(xiàn)的FPGA開發(fā)效率的顯著提高。該項目實時性強、平臺性能高、功耗低、集成度高、適應(yīng)性強,為鐵路安全檢測提供了高效可靠的解決方案。未來的工作可以著重于進一步優(yōu)化算法和系統(tǒng)架構(gòu),以提高檢測效率和準確性,擴大應(yīng)用范圍,為鐵路運輸?shù)陌踩咝ё龀鲐暙I。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉