私的AI研究会 > YOLOv7

物体認識の深層学習タスク:YOLO V7

 物体認識のタスク YOLO の新しい版である YOLO v7 を試してみる。

※ 最終更新:2023/12/21 

動作環境の準備と設定

事前準備

  1. プロジェクトファイルをダウンロードする
    AI_project_20230413.zip (216MB) <YOLO v7 プロジェクト一式> をダウンロード

  2. 「update」フォルダ内をすべてプロジェクトのホームディレクトリに配置する(上書き保存)
    ・「Windows」の場合 ➡ 「/anacondawin」直下
    ・「Linux」の場合  ➡ 「~/」ホームディレクトリ直下

    プロジェクトのディレクトリ配置
    プロジェクト・ホーム(c:/anaconda_win または ~/)
    ├─Images                ← 画像データ
    ├─model                 ← 学習済みモデル
    ├─Videos                ← 動画データ
    │       :
    ├─work                  ← 今回使用するプロジェクト・ディレクトリ
    │  ├─openvino
    │  └─yolov7
    ├─workspace_py37
    │  └─mylib             ← python 共有ライブラリ (パスが通っていること)
    └─workspace_py38        ← anaconda 環境下のアプリケーション・プロジェクト
        ├─ :
        └─stable_diffusion

環境構築のための主なコマンドの復習

新しく Python3.8 仮想環境「py38a」を構築

  1. ターミナルを起動して現在の環境を確認
    (py38) PS C:\anaconda_win\work> conda info -e
    ▼「conda info -e」ログ

  2. 仮想環境「py38a」を構築
    (py38) PS C:\anaconda_win\work> conda create -n py38a python=3.8
    ▼「conda create -n py38a python=3.8」ログ

  3. できた環境にアクティベートして環境確認
    (py38) PS C:\anaconda_win\work> conda activate py38a
    ▼「conda activate py38a」ログ

新規の仮想環境「py38a」に必要なパッケージをインストール

 ● OpenVINO™ランタイムを使用して「Stable Diffusion」と「YOLOv7」が動作するようにする。

「requirements.txt」

# Stable Diffusion & YOLOv7_OpenVINO
openvino==2022.1.0
numpy==1.19.5
opencv-python==4.5.5.64
transformers==4.16.2
diffusers==0.2.4
tqdm==4.64.0
huggingface_hub==0.9.0
scipy==1.9.0
streamlit==1.12.0
watchdog==2.1.9
ftfy==6.1.1
PyMuPDF
torchvision
matplotlib
seaborn
onnx
googletrans==4.0.0-rc1
  1. パッケージのインストール
    (py38a) PS C:\anaconda_win\work> pip install -r requirements.txt
    ▼「pip install -r requirements.txt」ログ

  2. インストールしたパッケージの確認
    (py38a) PS C:\anaconda_win\work> pip list
    ▼「pip list」ログ

Stable-Diffusion デモ・プログラムの実行確認

GUI で画像を生成する「stable_diffusion2.py」の実行確認

(py38a) PS C:\anaconda_win\workspace_py38\stable_diffusion> python stable_diffusion2.py
Starting..
 - Program title  : Stable Diffusion2 OpenVINO™  Ver 0.02
 - OpenVINO engine: 2022.1.0-7019-cdb9bec7210-releases/2022/1
 - OpenCV version : 4.5.5
 - Log level      : 3
 - Output dir     : result/
 - Output header  : output_
 - model          : bes-dev/stable-diffusion-v1-4-openvino
 - beta_start     : 0.00085
 - beta_end       : 0.012
 - beta_schedule  : scaled_linear
 - eta            : 0.0
 - tokenizer      : openai/clip-vit-large-patch14

 Prompt: Beautiful green forest where light shines
 (和訳): 光が輝く美しい緑の森

** start 0 ** 4029269746
32it [03:26,  6.46s/it]
 -Output-: result/output_4029269746.png
** end **     00:03:49

Finished.

YOLOv7_OpenVINO のテスト

GitHub サイトからプロジェクトをダウンロード

  1. YOLOv7_OpenVINO サイトを開く
    ①「Code」を押し「Download.ZIP」を選択。「YOLOv7_OpenVINO_cpp-python-main.zip」をダウンロード

    ②「YOLOv7」を押してオフィシャルサイト(Official YOLOv7)を開く

    ③「Code」を押し「Download.ZIP」を選択。「yolov7-main.zip」をダウンロード

    ④ ページを上にスクロールして「Testing」の項の「yolov7.pt」をダウンロード
  2. 「YOLOv7_OpenVINO_cpp-python-main.zip」「yolov7-main.zip」を解凍する
  3. できた「YOLOv7_OpenVINO_cpp-python-main」「yolov7-main」フォルダを「/work」直下にコピーする
  4. 「/work/yolo7-main」の下に「yolov7.pt」をコピーする
    /work
    ├─openvino
    ├─yolov7
    ├─YOLOv7_OpenVINO_cpp-python-main
    └─yolov7-main
        ├─ :
        └─yolo7.pt

学習済みモデルのコンバート

  1. オフィシャルサイトの「export.py」を使って onnx 形式に変換
    (py38a) PS > cd /anaconda_win/work/yolov7-main
    (py38a) PS > python export.py --weights yolov7.pt
    ▼「python export.py --weights yolov7.pt」ログ

  2. できた「yolo7.onnx」を「/work/YOLOv7_OpenVINO_cpp-python-main」フォルダにコピーする

デモ・プログラムの実行

  1. 静止画像
    (py38a) PS > cd /anaconda_win/work/YOLOv7_OpenVINO_cpp-python-main/
    (py38a) PS > python python/image.py -m yolov7.onnx -i data/horses.jpg -p
    ▼「python python/image.py -m yolov7.onnx -i data/horses.jpg -p」ログ

     プログラムが終了すると実行フォルダ「YOLOv7_OpenVINO_cpp-python-main」内に入力画像「data/horses.jpg」に対する認識結果画像「yolov7_out.jpg」が生成される

  2. カメラ入力
    (py38a) PS > cd /anaconda_win/work/YOLOv7_OpenVINO_cpp-python-main/
    (py38a) PS > python python/webcam.py -m yolov7.onnx -i 0 -p
    ▼「python python/webcam.py -m yolov7.onnx -i 0 -p」ログ

YOLO v7 実行プログラムの作成

プログラム概要

実行手順

実行例

ソースコード

その他の「YOLO」アルゴリズム検証

 ※「py38a」仮想環境で実行可能な修正を加えて本プロジェクト内に再配置した

実行例

これまでの検証ページ

ソースコード

 

更新履歴

参考資料

 

Last-modified: 2023-12-21 (木) 04:21:02