Windows10のPythonからYOLACT++するためにやったこと2020年10月版
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
ということでタイトルがややこしくなりましたが、目的としては「動画に映り込んだカーナンバーとか人物を消し去りたい」ってことです。
前回の記事では「Windows10のPythonからOpenCVでTensorFlowするためにやったこと」ということだったんですが、いろいろ進めているうちに本当にやりたかったのはYOLACT++なんじゃないかってことで今回の記事になります。
んで、前回の終わりに軽く入れたんですが、見事にダメだったんですよね。
新しすぎて。
今回は、バージョンを落としてやっていってみたいと思います。
事前条件
前回の続きとなるので詳しいところは前回の記事で確認してください。
インストール環境
Windows10 64bit
Windows10を選んだ理由
そもそもWindows10で作る前に、iMac2015 で作りました。
ですがCPUパワーが足りないのでWindows10でやることにしました
ちなみにこのマシンの詳細は下記をご覧ください
https://aulta.co.jp/archives/6705
各種セットアップ
それでは作業した順番に進めていきます。
ちなみにユーザー名とかディレクトリ名なんかはそのまま使ってますので、ご自身の環境に合わせて読み替えてください。
前回の続きなので、Visual Studio とかは省略します。前回の記事を確認してください。
Python のインストール
前回インストールしたPython3.8だと新しすぎてダメっぽいので、1つ前の3.7を入れていきます。
Pythonの複数バージョン同居環境は可能なことは事前に調査済みです。
ダウンロードURL
https://pythonlinks.python.jp/ja/index.html
python-3.7.9-amd64.exe
ダウンロードして実行
※tensorflowが3.8までしか対応していなかったけど、YOKACT++は3.7でないとダメっぽい
Add Python 3.6 to PATH
チェックしない
Install Now
Close
win + r cmd
py
print('Hello World!')
exit()
py --version
# 前回 3.8 を入れているので
py -3.8 --version
# 同居できている
py -3.7 --version
【参考サイト】
virtualenv
REM インストール
py -3.7 -m pip install virtualenv
REM 仮想環境を作成
REM ここでは py37yolactpp という名前にする
py -3.7 -m virtualenv D:\python\venv\py37yolactpp
【参考サイト】
Python環境構築ガイド 〉 Windows 環境のPython > 仮想環境
環境変数を加える
D:\python\venv\py37yolactpp\Scripts\activate.bat
先頭に次のように SET PATH の2行を加える
@echo off
SET PATH=C:\Users\★\AppData\Local\Programs\Python\Python37\Scripts;%PATH%
SET PATH=D:\apps\cmake-3.19.0-rc1-win64-x64\bin;%PATH%
SET PATH=D:\apps\ffmpeg-N-99577-g2b5e18a953-win64-gpl-vulkan\bin;%PATH%
Python37のScripts、cmake、ffmpegのパスを設定
ここに設定することで、環境変数は触らない
virtualenv アクティベート
REM アクティベート
D:\python\venv\py37yolactpp\Scripts\activate.bat
REM 解除
deactivate
pip
virtuallenv してから upgrade する
py -3.7 -m pip list
REM 更新したくなるけど一旦やめておく
REM py -3.7 -m pip install --upgrade pip
REM py -3.7 -m pip install --upgrade setuptools
REM py -3.7 -m pip list
その他いろいろ pip
無くても構わないpipもあると思うんだけど、試行錯誤しながらだったので、そのまま全部乗せで。(次の機会があれば整理するかも)
REM opencv / contrib付き
py -3.7 -m pip install opencv-contrib-python
REM imutils
py -3.7 -m pip install imutils
REM dlib
py -3.7 -m pip install dlib
REM tensorflow
py -3.7 -m pip install tensorflow
REM keras
py -3.7 -m pip install keras
REM pillow
py -3.7 -m pip install pillow
REM h5py
py -3.7 -m pip install h5py
インスタンスセグメンテーション
YOLACT++を使います。
https://github.com/dbolya/yolact.git
Cloneしたら良いんだけど、ここはzipで。
アクセスして「Download ZIP」からでダウンロードします。
yolact-master.zip
▼どこでも良いんだけど今回はこちらに解凍
D:\projects\★\★\system\yolact-master
いろいろインストール
d:
cd D:\projects\★\★\system\yolact-master
py -3.7 -m pip install opencv-python
py -3.7 -m pip install pillow==6.2.1
py -3.7 -m pip install pycocotools
py -3.7 -m pip install matplotlib
py -3.7 -m pip install cython
CUDA
https://developer.nvidia.com/cuda-toolkit
Download Now
Archive of Previous CUDA Releases
ダメ cuda_11.1.0_456.43_win10.exe
ダメ cuda_10.1.243_426.00_win10.exe
CUDA Toolkit 10.0
Windows
x86_64
10
exe(local)
Download(2.1GB)
cuda_10.0.130_411.31_win10.exe
ダウンロードして実行
※複数バージョン対応してるのでそのままウィザード進んでく
インストールが終わったら、仮想環境を抜ける
REM 仮想環境を抜ける
deactivate
で、コマンドプロンプトを一旦終了
▼のファイルに
D:\python\venv\py37yolactpp\Scripts\activate.bat
▼を加える。(ファイルの上のほうに)
SET CUDNN_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
SET CUDA_PATH_V10_0=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
コマンドプロンプトを起動
win + r cmd
バージョンを確認。10.0 になっていればOK
nvcc -V
REM 仮想環境へ
D:\python\venv\py37yolactpp\Scripts\activate.bat
py -3.7 -m pip install torch==1.2.0 torchvision==0.4.0 -f https://download.pytorch.org/whl/torch_stable.html
REM d:
REM cd D:\projects\★\★\system\yolact-master
cd external/DCNv2
py -3.7 -m setup.py develop
エラー・・・・(><)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\crt/host_config.h(143): fatal error C1189: #error: -- unsupported Microsoft Visual Studio version! Only the versions between 2013 and 2017 (inclusive) are supported!
error: command 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.0\\bin\\nvcc.exe' failed with exit status 2
Visual Studio 2013 または 2017 でないとダメよ!って書かれてますね。
いま入っているのは2019です。
これはどこからやり直しになんだろう。
CUDAのインストールのところで、VisualStudioがなんか出てたよなー。
って感じで進めていきます。
Visual Studioの複数バージョン自体は可能です。
複数バージョンの Visual Studio をインストールする
考えててもしょうがないので進めていきます。
下記から2017をダウンロードしてインストールします。
Visual Studio の以前のダウンロード - 2017、2015、および以前のバージョン
Visual Studio Community 2017 (version 15.9)
mul / japanese / EXE
Downlaod
vs_Community.exe 実行
インストーラに従って進める
ワークロードで「C++によるデスクトップ開発」を含める(他は好みで)
ここまでのコマンドプロンプトが残ってたら仮想環境を解除して終了させておく
REM 解除
deactivate
exit
CUDAをアンインストール
スタートメニュー > Windowsシステムツール > コントロールパネル
プログラムのアンインストール
これまでに、10.0 / 10.1 / 11.1 を入れてきていて、実質まだ使ってないのでこの機会に全部消すことにする。
「NVIDIA CUDA」で始まるものを削除
「NVIDIA Nsight」で始まるものを削除
ついでに環境変数も削除
だいたいはアンインストーラで消えてたけど、自分で追加した「CUDNN_PATH」が残っとったきん手動で削除
一旦、再起動
この時点では、Visual Studo は2017と2019が共存している状態です。
さっきダウンロードしとった「cuda_10.0.130_411.31_win10.exe」をダブルクリックで実行
「2017」の文字が見えます。
結果的にはダメで、DCNv2をインストールしようとすると同じエラーになります。
ということで、Visual Studio 2019も無くしましょう。
いまはYOKACT++を動かすことが優先です。
ってか、コンパイルできてしまえばまたVisual Studio 2019入れていいんかな。(未確認)
スタートメニューにある「Visual Studio Installer」です。
起動したら2019のほうの「詳細」から「アンインストール」
新しいコマンドプロンプト
win + r cmd
nvcc -V
REM アクティベート
D:\python\venv\py37yolactpp\Scripts\activate.bat
d:
cd D:\projects\★\★\system\yolact-master
cd external/DCNv2
py -3.7 -m setup.py develop
weights フォルダを作成
yolact_base_54_800000.pthをダウンロードして、weights に配置
cd D:\projects\★\★\system\yolact-master
# input_image.jpg は自分で用意する
py -3.7 -m eval --trained_model=weights/yolact_base_54_800000.pth --score_threshold=0.15 --top_k=15 --image=input_image.jpg:output_image.jpg