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





