日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

应用YOLOV4 - DeepSort 实现目标跟踪

發布時間:2023/11/27 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 应用YOLOV4 - DeepSort 实现目标跟踪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自?https://cloud.tencent.com/developer/article/1706259

本文分享利用yolov4+deepsort實現目標跟蹤,主要是講解如何使用,具體原理可以根據文中的參考資料更加深入學習。目前主流的趨勢是將算法更加易用,讓更多人感受到視覺的魅力,也能讓更多有意向從事這個領域的人才進入。但受限于某些客觀的限制,比如github下載容易失敗,谷歌網盤無法下載等,讓部分人不得不退卻。

因此,我想我的分享的價值就在于感受視覺魅力的“最后一公里”。

完整的權重文件和項目都放在后臺了,回復“yolov4” 即可獲取。

歡迎分享,幫助更多的小伙伴!

使用YOLOv4、DeepSort和TensorFlow實現的目標跟蹤。YOLOv4是一種非常優秀的算法,它使用深卷積神經網絡來執行目標檢測。更詳細的介紹可以參考之前文章。

吊打一切的YOLOv4的tricks匯總!附參考論文下載

今天分享的內容是將YOLOv4的輸出輸入到Deep-SORT(Simple Online and Realtime Tracking with a Deep Association Metric),以創建一個高精度的目標跟蹤器。

demo效果展示:

?


開始實操

1、克隆項目

git clone https://github.com/theAIGuysCode/yolov4-deepsort.git

2、環境配置

從github項目的requirements-gpu.txt 文件我們可以知道所需要的依賴文件內容(這里以GPU版本為例,也可以選擇安裝requirements.txt ):

tensorflow-gpu==2.3.0rc0
opencv-python==4.1.1.26
lxml
tqdm
absl-py
matplotlib
easydict
pillow

強烈建議使用conda 創建虛擬環境避免污染其他環境

# 創建虛擬環境
conda create xxx
# 激活虛擬環境# 安裝依賴,這里使用的TensorFlow 2 
pip install -r requirements-gpu.txt

PS:建議使用的 cuda 版本是 10.1

可能存在的問題,tensorflow和opencv下載太慢

# 通過指定源來下載https://www.cnblogs.com/whw1314/p/11748096.html
# 以pip 安裝 tensorflow-gpu==2.3.0rc0 為例:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade tensorflow-gpu==2.3.0rc0

3、預訓練模型下載

我們的目標跟蹤器使用 YOLOv4 進行目標檢測,然后使用 deep sort 進行跟蹤。這里提供官方的 YOLOv4 目標檢測模型 作為預訓練模型,該模型能夠檢測 80 類物體。

為了便于演示,我們將使用預訓練的權重作為我們的跟蹤器。下載預訓練的yolov4.weights文件:

https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT

將下載好的權重文件復制到 data 文件夾下。

PS:如果你向使用 yolov4-tiny.weights,一個更小的模型,運行更快但精度略低一些,可以在這里下載

https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.weights

使用 YOLOv4 運行跟蹤器

為了將 YOLOv4 應用到目標跟蹤上,首先我們需要將權重文件轉換 成對應的TensorFlow 模型,并將保存到 checkpoints 文件夾中。然后我們需要運行 object_tracker.py 來實現目標跟蹤。

# Convert darknet weights to tensorflow model
python save_model.py --model yolov4 # Run yolov4 deep sort object tracker on video
python object_tracker.py --video ./data/video/test.mp4 --output ./outputs/demo.avi --model yolov4# Run yolov4 deep sort object tracker on webcam (set video flag to 0)
python object_tracker.py --video 0 --output ./outputs/webcam.avi --model yolov4

--output 后面接的是目標跟蹤輸出結果視頻文件的存儲路徑。

當然如果你希望使用YOLOv4-Tiny 可以參考下面的操作

使用 YOLOv4-Tiny 運行跟蹤器

下面的命令將可以運行yolov4-tiny模型。Yolov4-tiny允許你獲得一個更高的速度(FPS)的跟蹤器,但可能在精度上有一點損失。確保你已經下載了權重文件,并將其添加到“data”文件夾中。

# save yolov4-tiny model
python save_model.py --weights ./data/yolov4-tiny.weights --output ./checkpoints/yolov4-tiny-416 --model yolov4 --tiny# Run yolov4-tiny object tracker
python object_tracker.py --weights ./checkpoints/yolov4-tiny-416 --model yolov4 --video ./data/video/test.mp4 --output ./outputs/tiny.avi --tiny

輸出結果

如上所述,生成的視頻將保存到設置 --output 命令行標志路徑的位置。這里把它設置為保存到‘output’文件夾。你也可以通過調整--output_format標志來改變保存的視頻類型,默認情況下它被設置為AVI編解碼器,也就是XVID。

示例視頻顯示跟蹤所有coco數據集類:

?

目標跟蹤器跟蹤的類別

默認情況下,代碼被設置為跟蹤coco數據集中的所有80個類,這是預先訓練好的YOLOv4模型所使用的。但是,可以簡單地調整幾行代碼,以跟蹤80個類中的任意一個或任意一個組合。只選擇最常見的person類或car類非常容易。

要自定義選擇的類,所需要做的就是注釋掉object_tracker.py的第159行和第162行allowed_classes列表,并需要添加想要跟蹤的任何類。這些類可以是模型訓練的80個類中的任何一個,可以在data/classes/ cocoa .names文件中看有那些跟蹤類

這個示例將允許跟蹤person和car的類。

?

目標跟蹤demo將跟蹤的類別設置為“person”

目標跟蹤demo將跟蹤的類別設置為“car”

命令行參數參考

save_model.py:--weights: path to weights file(default: './data/yolov4.weights')--output: path to output(default: './checkpoints/yolov4-416')--[no]tiny: yolov4 or yolov4-tiny(default: 'False')--input_size: define input size of export model(default: 416)--framework: what framework to use (tf, trt, tflite)(default: tf)--model: yolov3 or yolov4(default: yolov4)object_tracker.py:--video: path to input video (use 0 for webcam)(default: './data/video/test.mp4')--output: path to output video (remember to set right codec for given format. e.g. XVID for .avi)(default: None)--output_format: codec used in VideoWriter when saving video to file(default: 'XVID)--[no]tiny: yolov4 or yolov4-tiny(default: 'false')--weights: path to weights file(default: './checkpoints/yolov4-416')--framework: what framework to use (tf, trt, tflite)(default: tf)--model: yolov3 or yolov4(default: yolov4)--size: resize images to(default: 416)--iou: iou threshold(default: 0.45)--score: confidence threshold(default: 0.50)--dont_show: dont show video output(default: False)--info: print detailed info about tracked objects(default: False)

參考資料

  • tensorflow-yolov4-tflite:https://github.com/hunglc007/tensorflow-yolov4-tflite
  • Deep SORT Repository: https://github.com/nwojke/deep_sort

https://github.com/theAIGuysCode/yolov4-deepsort

總結

以上是生活随笔為你收集整理的应用YOLOV4 - DeepSort 实现目标跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。