物体追跡 yolov5-tracking を試してみる【Python】

AI
スポンサーリンク

スポンサーリンク

はじめに

今回からは Yolov5 と DeepSort を組み合わせた yolov5-tracking について説明していきます。

まずは、デモを試す方法について説明していきます。

前提条件

前提条件は以下の通りです。

  • Windows11
  • Python3.9
  • PyTorch == 1.12.1+cu113

プログラムのダウンロード

github からブランチを指定してダウンロードします。サイトはこちらです。

git clone -b v5.0 https://github.com/mikel-brostrom/yolov8_tracking.git

今回は -b v5.0 を指定します。

yolov8_tracking 内の yolov5 フォルダに git clone した yolov5 を配置します。

cd yolov8_tracking
git clone -b v7.0 https://github.com/ultralytics/yolov5.git

カスタムデータで学習させた weight ファイルを使用する際は学習したモデルのブランチが合うように
-b v7.0 の部分を変更してください。

※後から気づきましたが、github 内に yolov5 のリンクがあるので、そこから git clone するとこの後の準備は必要ないかもしれません。

次は、yolov5/utils/dataloaders.py をコピーして yolov5/utils/datasets.py という名前に変更します。

追加のパッケージをインストールします。

pip install Cython
pip install https://github.com/KaiyangZhou/deep-person-reid/archive/master.zip

track.py を編集します。

まずは 27 行目です。

from yolov5.utils.general import (LOGGER, check_img_size, non_max_suppression, scale_boxes, #scale_coords,
                                  check_imshow, xyxy2xywh, increment_path, strip_optimizer, colorstr)

172 行目付近を編集します。

# Rescale boxes from img_size to im0 size
# det[:, :4] = scale_coords(im.shape[2:], det[:, :4], im0.shape).round()
det[:, :4] = scale_boxes(im.shape[2:], det[:, :4], im0.shape).round()

これで準備は完了です。

Youtube の動画からデモを実行

以下のコマンドで簡単にテストすることができます。

python track.py --source .\MOT16_eval\track_all.gif --save-vid

以下のような出力が得られます。

おわりに

短いですが今回はここまでとします。

yolov5 のバージョンと yolov5-tracking のバージョンには注意して設定してください。
それぞれ独立したバージョンなので、今回説明したバージョン以外のバージョンでは動作しないと思います。

次回は、コードの説明を絡めながら、実務向きにどう変更すればいいか説明する予定です。

コメント

タイトルとURLをコピーしました