簡體   English   中英

JETSON TX2 上的 YoloV3 部署

[英]YoloV3 deployment on JETSON TX2

我在 TX2 上遇到了關於 Yolo 對象檢測部署的問題。 我使用預訓練的 Yolo3(在 Coco dataset 上訓練)來檢測一些有限的物體(我主要關注五個類,而不是所有類),實時檢測速度低,准確度不完美(但可以接受) ) 在我的筆記本電腦上。 我正在考慮通過在筆記本電腦上進行多線程或多處理來使其更快,yolo 可以嗎? 但我的主要問題是算法沒有在 raspberry pi 和 nvidia TX2 上運行。

以下是我的問題:

  1. 一般來說,是否可以在 TX2 上運行 yolov3 而無需任何修改,如加速器和模型壓縮技術?

  2. 我無法在 TX2 上運行模型。 首先,我遇到了關於相機的錯誤,所以我決定在視頻上運行模型,這次我收到了“無法在靜態 TLS 塊中分配內存”錯誤,出現此錯誤的原因是什么? 模型太大了。 它在我的筆記本電腦上使用 16 GB GPU 內存。樹莓和 TX2 的 GPU 內存小於 8GB。 據我所知,有兩種解決方案,使用較小的模型或使用張量 RT 或修剪。 你知道有沒有其他方法?

  3. 如果我使用 tiny-yolo,我的准確度會降低,這不是我想要的。 有什么方法可以在 raspberry pi 或 NVIDIA TX2 上實時運行任何在精度和速度 (FPS) 方面都具有高性能的對象檢測模型?

  4. 如果我只清理我關注的對象的 coco 數據,然后訓練相同的模型,我會獲得更高的准確性和速度,但大小不會改變,我正確嗎?

  5. 一般來說,就實時檢測的准確性而言,什么是最好的模型,在速度方面什么是最好的?

  6. 移動網絡如何? 它在准確性和速度方面都比 YOLO 更好嗎?

1- 是的,這是可能的。 我已經在 J​​etson Nano 上運行 Yolov3。

2- 這取決於模型和數據的輸入分辨率。 您可以降低輸入分辨率。 輸入圖像被傳輸到 GPU VRAM 以在模型上使用。 大輸入尺寸可以分配大量內存。 據我所知,兩年前我在 Jetson Nano(比 tx2 差)上運行了正常的 Yolov3。 此外,您可以使用 Yolov3-tiny 和 Tensorrt,正如您所提到的。 網絡上有很多像這樣這樣的來源

3-我建議你看看這里 在這個 repo 中,你可以使用你的數據集進行遷移學習並使用 TensorRT 優化模型並在 Jetson 上運行它。

4- 大小不依賴於數據集。 它取決於模型架構(因為它包含權重)。 速度可能不會改變。 准確性取決於您的數據集。 它可以更好或更糟。 如果 COCO 上的任何課程與您的數據集的任何課程相似,我建議您進行遷移學習。

5-你必須找到合適的模型,體積小,精度足夠,速度優雅。 沒有最好的模型。 您的案例有最好的模型,這也取決於您的數據集。 您可以在此處比較模型的某些准確性和 fps。

6- 大多數人使用 mobilenet 作為特征提取器。 閱讀這篇論文。 你會看到 Yolov3 有更好的准確性,帶有 MobileNet 骨干網的 SSD 有更好的 FPS。 我建議您使用jetson-inference庫。

通過使用jetson-inference庫,我在 SSD 模型上獲得了足夠的准確性並獲得了 30 FPS。 另外,我建議您在 Jetson 上使用 MIPI-CSI 攝像頭。 它比USB相機更快。

我僅通過替換腳本中的 opencv 和 tensorflow 的導入順序來解決問題 1 和 2。現在我可以運行 Yolov3,而無需對 tx2 進行任何修改。 我的平均 FPS 為 3。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM