使用Python和TensorRT在Jetson Nano上運(yùn)行的實(shí)時(shí)螺栓檢測(cè)和計(jì)數(shù)系統(tǒng)-專(zhuān)為低功耗工業(yè)設(shè)置而構(gòu)建
掃描二維碼
隨時(shí)隨地手機(jī)看文章
工業(yè)自動(dòng)化正在迅速發(fā)展,制造企業(yè)越來(lái)越多地采用工業(yè)4.0實(shí)踐,以變得更智能、更高效。與此同時(shí),硬件的進(jìn)步使計(jì)算能力更容易獲得,也更緊湊。
利用這兩種趨勢(shì),我們利用NVIDIA Jetson Nano開(kāi)發(fā)了一種實(shí)時(shí)螺栓檢測(cè)和計(jì)數(shù)系統(tǒng)。該解決方案不僅涉及強(qiáng)大的機(jī)器學(xué)習(xí)模型的開(kāi)發(fā),還涉及在Jetson Nano等邊緣設(shè)備上直接優(yōu)化和部署這些模型,從而實(shí)現(xiàn)工業(yè)過(guò)程中的變革性自動(dòng)化。
執(zhí)行步驟
數(shù)據(jù)集采集:使用移動(dòng)相機(jī)和USB相機(jī)采集數(shù)據(jù)集,采集工業(yè)螺栓排列在不同位置的圖像。螺栓被放置在不同的角度和多種照明條件下,以模擬真實(shí)的工業(yè)環(huán)境。這種多樣性確保了模型可以很好地概括,即使在外部條件發(fā)生變化時(shí)也能做出準(zhǔn)確的預(yù)測(cè),比如在低光照或不尋常的視角下。
數(shù)據(jù)注釋?zhuān)河捎谀繕?biāo)是檢測(cè)和計(jì)數(shù)工業(yè)螺栓,我們使用Edge Impulse應(yīng)用程序創(chuàng)建注釋來(lái)標(biāo)記圖像中的每個(gè)螺栓。為了提高精度,每個(gè)螺栓周?chē)褂镁匦慰蜻M(jìn)行手動(dòng)標(biāo)注。正確的標(biāo)記對(duì)于訓(xùn)練能夠識(shí)別和區(qū)分單個(gè)幀中的多個(gè)螺栓的目標(biāo)檢測(cè)模型至關(guān)重要。
特征提?。何覀冞M(jìn)行特征提取,將原始圖像數(shù)據(jù)轉(zhuǎn)化為有意義的特征。這一步包括規(guī)范化、調(diào)整大小和轉(zhuǎn)換為RGB通道,具體取決于所選的模型管道。這些特征是訓(xùn)練目標(biāo)檢測(cè)模型的關(guān)鍵輸入。
ML模型:我們使用MobileNetV2 SSD FPN-Lite 320x320訓(xùn)練模型,這是一種為邊緣設(shè)備量身定制的高效目標(biāo)檢測(cè)架構(gòu)。這種模型架構(gòu)非常適合在復(fù)雜場(chǎng)景中檢測(cè)像工業(yè)螺栓這樣的小物體。
?MobileNetV2作為特征提取器,提供輕量級(jí)和快速的主干。
?SSD(單鏡頭多盒檢測(cè)器)允許實(shí)時(shí)對(duì)象檢測(cè),通過(guò)預(yù)測(cè)邊界框和類(lèi)分?jǐn)?shù)在單一的向前傳遞。
?FPN-Lite(特征金字塔網(wǎng)絡(luò)Lite)通過(guò)聚合來(lái)自多個(gè)網(wǎng)絡(luò)級(jí)別的特征來(lái)改進(jìn)對(duì)小尺度目標(biāo)的檢測(cè)。
?320x320的輸入圖像分辨率平衡了邊緣部署的檢測(cè)精度和計(jì)算效率。
培訓(xùn)配置:
?訓(xùn)練周期:25
?學(xué)習(xí)率:0.15
?批量大?。?2
?訓(xùn)練處理器:CPU
?驗(yàn)證集大小:總數(shù)據(jù)集的20%
?數(shù)據(jù)分割方式:隨機(jī)分割
?量化:INT8
訓(xùn)練后,使用INT8量化對(duì)模型進(jìn)行了性能分析,使其能夠在邊緣硬件上高效運(yùn)行,進(jìn)一步降低了其內(nèi)存占用和推理延遲。這種配置使我們能夠創(chuàng)建一個(gè)緊湊而準(zhǔn)確的模型,能夠在資源受限的設(shè)備上實(shí)時(shí)運(yùn)行,如NVIDIA Jetson Nano。
ML模型轉(zhuǎn)換:訓(xùn)練成功后,將模型轉(zhuǎn)換為與邊緣設(shè)備兼容的格式。根據(jù)部署目標(biāo),訓(xùn)練后的ML模型被轉(zhuǎn)換為T(mén)ensorFlow Lite和自定義c++庫(kù)格式。在這種情況下,模型被轉(zhuǎn)換為與tensorrt兼容的格式,以便在Jetson Nano上優(yōu)化性能。
機(jī)器學(xué)習(xí)模型在Nvidia Jetson Nano上的部署:部署環(huán)境是通過(guò)使用Nvidia SDK Manager將Ubuntu 18.04加載到Nvidia Jetson Nano上準(zhǔn)備的。這為AI模型推理提供了一個(gè)穩(wěn)定、兼容的基礎(chǔ)系統(tǒng)。
安裝完操作系統(tǒng)后,安裝并配置Python 3.6以支持模型的運(yùn)行時(shí)需求。轉(zhuǎn)換后的模型與自定義C和Python腳本集成在一起,可以直接在設(shè)備上進(jìn)行實(shí)時(shí)推理。
該模型使用NVIDIA的高性能深度學(xué)習(xí)推理庫(kù)TensorRT進(jìn)行優(yōu)化。這使得Jetson Nano可以利用其板載GPU加速處理。創(chuàng)建了一個(gè)輕量級(jí)推理應(yīng)用程序來(lái)處理相機(jī)輸入、圖像預(yù)處理、模型執(zhí)行和輸出可視化——所有這些都是實(shí)時(shí)的。
這種部署設(shè)置確保系統(tǒng)在邊緣自主運(yùn)行,提供低延遲檢測(cè)和螺栓計(jì)數(shù),而無(wú)需互聯(lián)網(wǎng)連接。
ML模型推理:一旦部署,模型對(duì)視頻幀執(zhí)行實(shí)時(shí)推理。它檢測(cè)和計(jì)數(shù)存在于視場(chǎng)中的螺栓,并在其上覆蓋邊界框。輸出包括螺栓數(shù)量及其位置,可進(jìn)一步用于質(zhì)量控制、自動(dòng)檢查或工業(yè)環(huán)境中的操作分析。
整體總結(jié)
延遲故障
產(chǎn)業(yè)整合準(zhǔn)備情況
本文編譯自hackster.io