タグ: AI

  • 【2022年12月更新】YOLOv5のインストール方法[物体認識ツール]

    【2022年12月更新】YOLOv5のインストール方法[物体認識ツール]

    YOLOv5とは

    YOLOは物体検出を行うアルゴリズムです。YOLOはYou Look Only Onseの頭文字をとっています。
    物体のトラッキングとはまた少し違い、オブジェクトと、それがなんなのかを検出することができます。

    YOLOのHPより引用(https://pjreddie.com/darknet/yolo/)

    自動運転などでは、人なのか、ペットなのか、車なのかといった、人間がものを判断するように物体を検出、分類します。

    分類するアルゴリズムは複雑なので、ここでは説明は省きますが、調べてみると非常に多くのサイトで解説されています。

    現在YOLOは大体隔年ぐらいのペースで新しいバージョンが出ており、今ではYOLO v1~YOLOv5、そして、2021年8月に新しいバージョンであるYOLO Xが公表されました。
    バージョンによって何が違うのかは、細かい部分で大きな変更がありますが、基本的には新しくなるにつれて精度がよくなっていきます。

    今回は十分な精度かつ、現在かなり情報が多くなり、導入しやすくなったYOLO v5のインストールと動作確認までのステップを紹介していきたいと思います。

    インストール環境

    OS : Windows 10 (macOS Montereyでもできました)
    Python : 3.9.7 (3.6以降)
    CUDA : 11.3

    インストール方法

    仮想環境の作成

    Anacondaを用いて、仮想環境を作成します。
    Anacondaをインストールしていない人は、インストールしましょう。

    YOLOv5をインストールする際にはかなり多くのパッケージがあるので、仮想環境でインストールをお勧めします。
    仮想環境の名前はなんでもいいのですが、今回は”Yolov5_env”とします。
    anaconda promptで以下のコマンドを入力します。

    conda create -n Yolov5_env python=3.9

    これで仮想環境が作成されるはずです。
    仮想環境に以下のコマンドで入ります。

    conda activate Yolov5_env

    CUDAのインストール

    まず、機械学習のライブラリを初めてインストールする方で、YOLOの学習をGPUで行うおうとする方はCUDAをインストールしましょう。(CPUでの学習はありえないほど時間がかかるのでおすすめしません)
    CUDAは公式サイトからダウンロードできます。

    CUDAのバージョンは、PyTorchで対応しているCUDAのバージョンを確認してから、そのバージョンをインストールするといいと思います。
    PyTorchの公式サイト

    過去のバージョンをインストールするには、Download nowを押した後の画面で、下の方のResourcesのArchive of Previous CUDA Releasesでインストールすることができます。

    最新バージョンでもできるかもしれませんが、取り合えず、PyTorchに合わせておけば問題なく動かすことができると思います。

    インストールされているかはwindowsで、「システム環境変数の編集」を開き、詳細設定>環境変数と開き、
    CUDA_PATHからはじまるパスがあるか確認しましょう。
    Vの後の数字がバージョンを示しています。

    PyTorchのインストール

    まず、インストールする前に、pipの更新をしておきましょう。
    Anaconda Promptで仮想環境に入り、以下のコマンドを実行します。

    python -m pip install --upgrade pip

    PyTorchの公式サイトに行き、自分の環境に合ったインストール方法を選びましょう。
    しかし、ここで問題となるのが、Packageの欄で、ここではpipを選択しましょう
    condaでインストールするとその後でエラーが出てしまいます。

    Run this Commandのコマンドをコピペして、仮想環境にインストールします。

    インストールが終わったら、以下のコマンドでPyTorchがインストールされているか確認しましょう。

    pip list

    この中に、torchが入っていればOKです!!!
    一応動作確認として、pythonを起動し、以下のコマンドを実行してみましょう。

    import torch
    print(torch.cuda.is_available())

    出力でTrueと出れば問題なくインストールできており、torchをGPUで動かす準備が整ったということになります。
    (Macに導入する際やGPUがないパソコンには、Folseと出てきますが、imortが出てきたら大丈夫です)
    エラーが出たらもう一度、インストールを見直してみましょう。

    YOLOv5のインストール

    GitHubからYOLOv5のファイルをダウンロード(クローン)します。

    git clone https://github.com/ultralytics/yolov5

    gitコマンドが使えない方は、gitをインストールするか、YOLOv5のGitHubからファイルをダウンロードします。

    次に、以下のコマンドをAnaconda promptの仮想環境で実行します。

    cd yolov5
    pip install -r requirements.txt

    最初のコマンドは、GitHubでダウンロードしたyolov5のフォルダに移動するコマンドで、gitコマンドでインストールした人はこれで大丈夫ですが、直接サイトからダウンロードしたかたはそのディレクトリに頑張って移動しましょう。

    ダウンロードしたyolov5のフォルダには”requirements.txt”というファイルがあり、ここに必要なパッケージが入っているので、これを読み取り専用で開き、記載されているパッケージをインストールするコマンドが二つ目のコマンドです。

    インストールが終了したらどんなパッケージがインストールされたか確認しましょう。

    pip list 

    かなり多くのパッケージがインストールされたと思います。
    一旦これでYOLOv5のインストールは完了です。

    動作

    動作確認として、元々yolov5のフォルダに入っているデータで確かめてみましょう。
    Anaconda promptで仮想環境に入り、cdコマンドでyolov5のフォルダに移動します。

    そして、以下のコマンドを実行します。

    python detect.py --source ./data/images/ --weights yolov5s.pt --conf 0.4

    detect.pyがyoloを使って、物体認識するプログラムです。
    sourceで物体認識してほしい素材があるフォルダのパスを指定します。
    今回はyolov5に入っているimagesの画像を用いました。

    weightsでどのモデルを使用するかを選択します。
    今回はyolov5.ptを用います。

    confではどれぐらいの尤度(Likelihood)で物体を認識するかを示します。
    これに関しては、機械学習を勉強する際によく出てくる言葉です。
    わからなければこのままで問題ないと思います。

    実行すると、yolov5のフォルダのruns\detect\expに認識された画像が入っていると思います。
    このようにしてYOLOv5では物体認識が行われます。

    直面したエラー

    ModuleNotFoundError: No module named ‘torch’

    Yoloを動かそうとしたときにこのようなエラーが出ることがあります。
    これはPyTorchが利用できていない、モジュールが見つからないというようなエラーです。

    このエラーが出た際には、まず仮想環境でtorchがインストールされているかどうか確認しましょう。

    pip list

    ここにtorchがなければPyTorchをインストールしましょう。
    あるけれどうまくいかない、よくわからないというときは、pythonを起動し、PyTorchをインポート、利用できているかみましょう。

    import torch
    torch.cuda.is_acailable()

    利用できる際には、Trueと返され、うまくいかないときは、上記のエラーが表示されるかと思います。

    エラーの原因として考えられる一つとして、PyTorchをcondaコマンドでインストールしているという可能性があります。
    PyTorchはcondaコマンドでインストールしているけど、他のパッケージはpipコマンドでインストールしていると上記のエラーが出てしまうことがあります。

    その際には、condaコマンドでtorchをアンインストールし、pipコマンドでインストールしなおしましょう。

    モジュールが見つからない問題は、インストールする際のコマンドがpipなのか、condaなのかごっちゃになっている可能性があります。
    今回はpipで統一していますが、常にどのコマンドでインストールしているか気にするといいでしょう。

    リンク集

    Anaconda
    CUDA
    PyTorch
    YOLOv5 GitHub
    YOLOホームページ

    おまけ

    パソコンどれを使えばいいのかわからない方へ、パソコン購入相談をココナラでやることにしました!

    あなたの要望に合わせてパソコンを選び、提案します パソコン選びに困っている方々へ!様々な目的に対応できます!

    パソコンを選んだり、アドバイスすることが多く多くの友人からパソコンの相談やったら儲かるのにと言われました。
    それに感化されて一旦やってみようと思いました!

    パソコンの利用目的に合わせて、そしてパソコンの予算に合わせて購入をご提案します。
    特に機械学習に用いるパソコンを多く選び、使ってきています。

    そして、希望があればパソコンを今後買う時にどこに注目すると良いかもアドバイスしていきたいと思います。

    今まで選んだことあるパソコンとして、研究室の解析用パソコン、実用パソコン、ゲーム配信用パソコン、大学の新入生用のパソコン、建築学科用のCADが使えるパソコン、とりあえずのパソコンなど。

    MacとWindowsの両方使っているので、どちらのお話、ご提案もできます!

    ぜひ利用してみてください!