資料介紹
描述
基于 DeepSORT YOLOv4 的目標(biāo)跟蹤
隨著道路上的汽車(chē)、卡車(chē)和不同車(chē)輛的數(shù)量不斷增加,交通擁堵問(wèn)題仍在日益嚴(yán)重。適當(dāng)?shù)募t綠燈控制可以減少交通并提高十字路口的通行能力,而十字路口往往是交通瓶頸。由于持續(xù)監(jiān)控十字路口的高成本和這項(xiàng)任務(wù)的基礎(chǔ)設(shè)施,更好的方法是使用無(wú)人機(jī),它可以監(jiān)控、跟蹤和通知車(chē)輛的數(shù)量和通過(guò)十字路口所需的時(shí)間。它可以更好地管理交通信號(hào)燈,尤其是在高峰時(shí)段或道路整修期間。對(duì)于此任務(wù),需要實(shí)時(shí)對(duì)象跟蹤算法來(lái)持續(xù)提供返回結(jié)果。所以該項(xiàng)目包含DeepSORT的實(shí)現(xiàn)基于 YOLOv4 檢測(cè)的目標(biāo)跟蹤算法,確保實(shí)時(shí)響應(yīng)。檢測(cè)器推理類(lèi)在 TensorFlow、TensorFlow Lite、TensorRT、OpenCV 和 OpenVINO 等多個(gè)框架中實(shí)現(xiàn),以便對(duì)方法進(jìn)行基準(zhǔn)測(cè)試并將最佳方法用于邊緣定制解決方案。
步驟 0:多對(duì)象跟蹤簡(jiǎn)介
MOT 算法作為當(dāng)前計(jì)算機(jī)視覺(jué)研究的相關(guān)部分,與自動(dòng)駕駛和轉(zhuǎn)向、監(jiān)視和行為分析有關(guān)。MOT 問(wèn)題主要分為多個(gè)子任務(wù),例如檢測(cè)多個(gè)對(duì)象(定位和分類(lèi))、添加和保持它們的身份,以及在連續(xù)幀中跟蹤它們的個(gè)體軌跡。
DeepSORT 算法是一種基于檢測(cè)器的方法,它使用具有恒定運(yùn)動(dòng)速率的遞歸卡爾曼濾波器和線性觀察模型。重新識(shí)別任務(wù)使用匈牙利算法解決。為了提高分配算法的投影和性能,使用了加權(quán)度量,包括馬氏距離和余弦距離。第一個(gè)度量通過(guò)計(jì)算預(yù)測(cè)的卡爾曼狀態(tài)和新到達(dá)的測(cè)量值之間的距離來(lái)提供運(yùn)動(dòng)信息。第二個(gè)指標(biāo)使用預(yù)訓(xùn)練的深度卷積網(wǎng)絡(luò)作為圖像特征描述符來(lái)提供外觀信息。
第 1 步:準(zhǔn)備檢測(cè)算法
作為目標(biāo)檢測(cè)器,由于其令人滿意的結(jié)果和實(shí)時(shí)處理速度,選擇了YOLOv4算法。神經(jīng)網(wǎng)絡(luò)模型使用Darknet框架和VisDrone 數(shù)據(jù)集進(jìn)行訓(xùn)練,其中包含從無(wú)人機(jī)視角捕獲的圖像。每個(gè)獨(dú)立對(duì)象都屬于 11 個(gè)類(lèi)別之一。許多實(shí)例的圖像的小而被遮擋的部分被標(biāo)記為忽??略區(qū)域。
ignored_regions
pedestrian
people
bicycle
car
van
truck
tricycle
awning_tricycle
bus
motor
others
YOLOv4 文件在鏈接存儲(chǔ)庫(kù)中,配置文件在data/darknet/yolov4_visdrone.cfg中,類(lèi)文件在data/classes/visdrone.names中,錨框的計(jì)算大小在data/anchors/visdrone_anchors.txt中。
第 2 步:邊緣設(shè)備設(shè)置
系統(tǒng)設(shè)置。
出于評(píng)估目的,使用了NVIDIA Jetson Xavier NX和英特爾神經(jīng)計(jì)算棒 2等邊緣設(shè)備。Jetson Xavier NX 使用JetPack SDK 4.4.1 刷新,Raspberry Pi 4B 的 SD 卡使用Raspberry Pi OS Lite 5.10刷新。完整的 TensorFlow 庫(kù)用于 Raspberry Pi 4B,2.2.0 版本的構(gòu)建指令可在此處獲得。
相機(jī)設(shè)置。
由于使用了 Jetson 相機(jī)驅(qū)動(dòng)程序(e-CAM24_CUNX – 彩色全局快門(mén)相機(jī)),必須使用 4.4.1 版本的 JetPack。e-con Systems 作為制造商提供了適用于 NVIDIA Jetson Nano 和 Xavier NX 的攝像頭驅(qū)動(dòng)程序和簡(jiǎn)單的安裝說(shuō)明。
第 3 步:邊緣定制的檢測(cè)器模型優(yōu)化和量化
使用 NVIDIA Jetson Xavier NX 的TensorRT 、英特爾神經(jīng)計(jì)算棒 2 的 OpenVINO 和基于 CPU 的解決方案的 TensorFlow Lite執(zhí)行優(yōu)化和量化過(guò)程。
TensorRT框架需要將模型轉(zhuǎn)換為一種受支持的格式,例如 ONNX 或 TensorFlow。在本項(xiàng)目中,使用了對(duì) ONNX 格式的更改。為了將存儲(chǔ)庫(kù)中可用的腳本yolo_to_onnx.py與以下調(diào)用一起使用,其中 -c 描述了許多類(lèi)-m輸入模型和-o輸出 ONNX 模型路徑。
python3 yolo_to_onnx.py -c 12 -m ./yolov4-608 -o ./yolov4.onnx
要將模型從 ONNX 更改為 TensorRT,使用了onnx_to_tensorrt.py腳本。模型的 TensorRT 表示以三種不同的數(shù)據(jù)類(lèi)型呈現(xiàn):FP32 和量化的 FP16 和 INT8。
- 使用 float32 權(quán)重將 ONNX 轉(zhuǎn)換為 TensorRT 引擎
python3 onnx_to_tensorrt.py -v -c 12 -m ./yolov4 -q fp32 -o ./yolov4_fp32.trt
- 使用 float16 權(quán)重將 ONNX 轉(zhuǎn)換為 TensorRT 引擎
python3 onnx_to_tensorrt.py -v -c 12 -m ./yolov4 -q fp16 -o ./yolov4_fp16.trt
- 將 ONNX 轉(zhuǎn)換為具有 int8 權(quán)重的 TensorRT 引擎(需要校準(zhǔn)數(shù)據(jù)集的路徑 - 來(lái)自數(shù)據(jù)集的代表性圖像,下面標(biāo)記為“./calib_images” )
python3 onnx_to_tensorrt.py -v -c 12 -m ./yolov4 -i ./calib_images -q int8 -o ./yolov4_int8.trt
OpenVINO使用了從tensorrt/README.md的指令生成的 ONNX 文件,然后使用 OpenVINO模型優(yōu)化器包和命令:
- FP32 數(shù)據(jù)格式:
python3 mo.py --input_model ./yolov4.onnx --model_name yolov4_fp32 --data_type FP32 --batch 1
- FP16 數(shù)據(jù)格式:
python3 mo.py --input_model ./yolov4.onnx --model_name yolov4_fp16 --data_type FP16 --batch 1
通過(guò)命令行界面使用 ONNX 模型和onnx-tensorflow包完成到TensorFlow Lite的轉(zhuǎn)換:
onnx-tf convert -i /path/to/input.onnx -o /path/to/output
它支持從 ONNX 格式更改為 TensorFlow SavedModel 表示。使用內(nèi)部 TensorFlow TFLiteConverter 可以轉(zhuǎn)換為 TF Lite。
- FP32 格式
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model(MODEL_PATH)
tflite_model = converter.convert()
# Save the model.
with open(OUTPUT_PATH, 'wb') as f:
f.write(tflite_model)
- FP16 格式
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model(MODEL_PATH)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.target_spec.supported_types = [tf.float16]
tflite_model = converter.convert()
# Save the model.
with open(OUTPUT_PATH, 'wb') as f:
f.write(tflite_model)
第 4 步:如何使用 DeepSORT 跟蹤器
DeepSORT 算法從 YOLOv4 中獲取檢測(cè)結(jié)果,并使用遞歸卡爾曼濾波器和匈牙利算法將它們關(guān)聯(lián)起來(lái)。
。它是在 NVIDIA Jetson Xavier NX 上使用 TensorRT 在 FP32 模式下執(zhí)行的。
筆記
如果想要運(yùn)行推理,一臺(tái)支持 TensoRT 的 NVIDIA 設(shè)備需要取消注釋檢測(cè)器/__init__.py 中的TrtYOLO檢測(cè)器導(dǎo)入。同樣的問(wèn)題是在英特爾硬件上使用OpenvinoYOLO類(lèi)。
命令行參數(shù)
Usage: object_tracker.py [OPTIONS]
Options:
-f, --framework TEXT Inference framework: {tf, tflite, trt, opencv,
openvino}
-m, --model_path TEXT Path to detection model
-n, --yolo_names TEXT Path to YOLO class names file
-s, --size INTEGER Model input size
-v, --video_path TEXT Path to input video
-o, --output TEXT Path to output, inferenced video
--output_format TEXT Codec used in VideoWriter when saving video to
file
--tiny BOOLEAN If YOLO tiny architecture
--model_type TEXT yolov3 or yolov4
--iou FLOAT IoU threshold
--score_threshold FLOAT Confidence score threshold
--opencv_dnn_target TEXT Precision of OpenCV DNN model
--device TEXT OpenVINO inference device, available: {MYRIAD,
CPU, GPU}
--dont_show BOOLEAN Do not show video output
--info BOOLEAN Show detailed info of tracked objects
--count BOOLEAN Count objects being tracked on screen
--help Show this message and exit.
第 5 步:性能測(cè)試
基準(zhǔn)測(cè)試是在NVIDIA Jetson Xavier NX和英特爾神經(jīng)計(jì)算棒 2上執(zhí)行的。Jetson Xavier NX 處于模式 2 ( sudo nvpmodel -m 2
) 和風(fēng)扇,時(shí)鐘通過(guò)命令設(shè)置為最大頻率sudo jetson clocks --fan
。為了評(píng)估英特爾 INCS 2,使用了 Raspberry Pi 4B。評(píng)價(jià)結(jié)果如下所示。
第 6 步:功耗測(cè)試
在性能評(píng)估期間,檢查了基準(zhǔn)邊緣設(shè)備的能效。英特爾神經(jīng)計(jì)算棒 2 和樹(shù)莓派 4B 的功耗是使用 USB 多功能測(cè)試儀測(cè)量的,如下圖所示。
Jetson Xavier NX 的能源使用情況通過(guò)使用旨在監(jiān)控和控制 NVIDIA Jetson 設(shè)備的jetson-stats包進(jìn)行檢查。所進(jìn)行的測(cè)試的結(jié)果如下表所示。
相比之下,NVIDIA V100 或 RTX 3080 等云中心中用于推理和計(jì)算的顯卡的功耗分別為 300 和 320 瓦,如下所示。
跟蹤算法的用例
多對(duì)象跟蹤的可能用例是:
- 監(jiān)視監(jiān)控
- 十字路口流量跟蹤
- 不安全場(chǎng)所監(jiān)測(cè)預(yù)警
參考
非常感謝您的出色工作:
- 人工智能專(zhuān)家:yolov4-deepsort ,麻省理工學(xué)院許可證
- nwojke : deep_sort , MIT 許可證
- jkjung-avt : tensorrt_demos , MIT 許可證
- 在KV260上運(yùn)行Yolov4 tiny
- Nvidia Jetson Nano面罩Yolov4探測(cè)器
- 基于Tengine實(shí)現(xiàn)yolov4的cpu推理
- AAAI 2021 YOLObile:移動(dòng)設(shè)備上的實(shí)時(shí)目標(biāo)檢測(cè)
- 基于多尺度自適應(yīng)權(quán)重的目標(biāo)跟蹤算法 7次下載
- 基于特征融合的LCT目標(biāo)跟蹤算法綜述 11次下載
- 基于YOLOv3的嵌入式設(shè)備視頻目標(biāo)檢測(cè)算法 7次下載
- 一種基于特定目標(biāo)提議框的自適應(yīng)跟蹤算法 8次下載
- 工業(yè)零件圖像的改進(jìn)YOLOv3目標(biāo)識(shí)別算法 11次下載
- 基于北京加權(quán)的多特征融合目標(biāo)跟蹤算法 4次下載
- 視覺(jué)目標(biāo)跟蹤相關(guān)算法、優(yōu)缺點(diǎn)及發(fā)展趨勢(shì) 14次下載
- 如何更好地實(shí)現(xiàn)視頻多目標(biāo)軌跡的連續(xù)跟蹤? 5次下載
- 基于神經(jīng)網(wǎng)絡(luò)的、改進(jìn)的YOLOv3目標(biāo)檢測(cè)算法 15次下載
- 基于YOLOV3算法的視頻監(jiān)控目標(biāo)檢測(cè)方法 13次下載
- 新型基于深度學(xué)習(xí)的目標(biāo)實(shí)時(shí)跟蹤算法 10次下載
- 用OpenVINO C# API在intel平臺(tái)部署YOLOv10目標(biāo)檢測(cè)模型 746次閱讀
- 多目標(biāo)跟蹤算法總結(jié)歸納 1111次閱讀
- OpenVINO? C# API部署YOLOv9目標(biāo)檢測(cè)和實(shí)例分割模型 610次閱讀
- 深入淺出Yolov3和Yolov4 581次閱讀
- 目標(biāo)跟蹤初探(DeepSORT) 679次閱讀
- 經(jīng)典多目標(biāo)跟蹤算法DeepSORT的基本原理和實(shí)現(xiàn) 2959次閱讀
- AI愛(ài)克斯開(kāi)發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型 1067次閱讀
- 目標(biāo)跟蹤新的建模方式 748次閱讀
- YOLOv8版本升級(jí)支持小目標(biāo)檢測(cè)與高分辨率圖像輸入 1.1w次閱讀
- 在AI愛(ài)克斯開(kāi)發(fā)板上用OpenVINO?加速YOLOv8目標(biāo)檢測(cè)模型 1134次閱讀
- 復(fù)雜野外環(huán)境下油茶果快速魯棒檢測(cè)算法 875次閱讀
- 最常見(jiàn)的目標(biāo)跟蹤算法 2544次閱讀
- 深度解析YOLOv7的網(wǎng)絡(luò)結(jié)構(gòu) 7281次閱讀
- 關(guān)于YOLOU中模型的測(cè)試 741次閱讀
- 計(jì)算機(jī)視覺(jué)中有哪些經(jīng)典的目標(biāo)跟蹤算法? 5416次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多