Windows10のPythonからOpenCVでTensorFlowするためにやったこと2020年10月版
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
ということでタイトルがややこしくなりましたが、目的としては「動画に映り込んだカーナンバーとか人物を消し去りたい」ってことです。
そのための準備をしていってみたいと思います。
インストール環境
Windows10 64bit
Python のインストールは初めて
※正確には zip版はあるけど、インストーラ版は初めて、という意味で
Windows10を選んだ理由
そもそもWindows10で作る前に、iMac2015 で作りました。その時の様子はまた記事にします。
ざっくり言うと、やりたいことに対して iMac が非力過ぎたからです。
ちょっとどうにもならないな、と思い、メインマシンのWindows10に入れることにしました。
こちらは、Core i9-9980XE のCPUで、18コア36スレッドあります。
iMac2015だと、4つのコアがいっぱいいっぱいでめっちゃ時間が掛かってたのでWindows10だとどうなるか楽しみなところです。
( -> 結果、めちゃっぱやでした)
ちなみにこのマシンの詳細は下記をご覧ください
https://aulta.co.jp/archives/6705
各種セットアップ
それでは作業した順番に進めていきます。
ちなみにユーザー名とかディレクトリ名なんかはそのまま使ってますので、ご自身の環境に合わせて読み替えてください。
Visual Studio (C++付き)
インストール後、再起動が必要になるので最初に入れたい
pip install dlib で必要
https://visualstudio.microsoft.com/ja/downloads/
コミュニティ
無料ダウンロード
vs_Community.exe をダウンロードして実行
インストーラに従って進める
ワークロードで「C++によるデスクトップ開発」を含める(他は好みで)
【参考サイト】
C++ 再頒布可能パッケージ
インストール後、再起動が必要になるので最初に入れたい
tensorflow で必要
https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads
Visual Studio 2015、2017 および 2019
x64: vc_redist.x64.exe
CMake
pip install dlib で必要
ダウンロードURL
https://cmake.org/download/
cmake-3.19.0-rc1-win64-x64.zip
※msiのインストーラのほうが簡単だけど、汚したくないのでzipを
ダウンロードして解凍
D:\apps\cmake-3.19.0-rc1-win64-x64
FFmpeg
opencvで書き出すのに必要なはず(macのときは必要だった)
https://github.com/BtbN/FFmpeg-Builds/releases
そのときの最新版
Auto-Build 2020-10-16 12:39
ffmpeg-N-99577-g2b5e18a953-win64-gpl-vulkan.zip
解凍
ffmpeg-N-99577-g2b5e18a953-win64-gpl-vulkan
Python のインストール
本当は zip版で進めてたが、どうしても解決できない問題があり断念。
調査していく過程で、インストーラ版でも複数バージョン対応、仮想環境などが可能で、「zip版にこだわる意味」の大半をクリアしているので、インストーラ版で進めることにした経緯。
ダウンロードURL
https://pythonlinks.python.jp/ja/index.html
python-3.8.6-amd64.exe
ダウンロードして実行
※tensorflowが3.8までにしか対応していない
Add Python 3.6 to PATH
チェックしない
Install Now
Close
win + r cmd
py
print('Hello World!')
exit()
py --version
py -3.8 --version
【参考サイト】
pip
py -3.8 -m pip list
py -3.8 -m pip install --upgrade pip
py -3.8 -m pip install --upgrade setuptools
py -3.8 -m pip list
virtualenv
REM インストール
py -3.8 -m pip install virtualenv
REM 仮想環境を作成
REM ここでは py3cv4 という名前にする
py -3.8 -m virtualenv D:\python\venv\py3cv4
REM アクティベート
D:\python\venv\py3cv4\Scripts\activate.bat
REM 解除
deactivate
【参考サイト】
Python環境構築ガイド 〉 Windows 環境のPython > 仮想環境
環境変数を加える
D:\python\venv\py3cv4\Scripts\activate.bat
先頭に次のように SET PATH の2行を加える
@echo off
SET PATH=C:\Users\★\AppData\Local\Programs\Python\Python38\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%
Python38のScripts、cmake、ffmpegのパスを設定
ここに設定することで、環境変数は触らない
opencv
contrib付き
(py3cv4) py -3.8 -m pip install opencv-contrib-python
imutils
(py3cv4) py -3.8 -m pip install imutils
dlib
(py3cv4) py -3.8 -m pip install dlib
tensorflow
(py3cv4) py -3.8 -m pip install tensorflow
keras
(py3cv4) py -3.8 -m pip install keras
pillow
(py3cv4) py -3.8 -m pip install pillow
h5py
(py3cv4) py -3.8 -m pip install h5py
物体検出
YOLOを使います。説明は省略します。
https://github.com/zzh8829/yolov3-tf2
win + r cmd
REM ドライブ切り替え
d:
REM 移動
cd D:\projects\★\★\system\yolov3-tf2\yolov3-tf2-master
# 仮想環境へ
D:\python\venv\py3cv4\Scripts\activate.bat
# ビデオ、物体検知、実行
py -3.8 _run.py
REM qキーで抜ける
インスタンスセグメンテーション
YOLACT++を使います。
https://github.com/dbolya/yolact.git
py -3.8 -m pip install opencv-python
py -3.8 -m pip install pillow
py -3.8 -m pip install pycocotools
py -3.8 -m pip install matplotlib
py -3.8 -m pip install cython
https://developer.nvidia.com/cuda-toolkit
cuda_11.1.0_456.43_win10.exe
cuda_10.1.243_426.00_win10.exe
ダウンロードして実行
https://qiita.com/8128/items/2e884998cd1193f73e2f
https://developer.nvidia.com/cudnn
cuDNN v7.6.5 (November 5th, 2019), for CUDA 10.1
cudnn-10.1-windows10-x64-v7.6.5.32.zip
システム環境変数に新規で
変数名「CUDNN_PATH」
値 「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1」
py -3.8 -m pip install torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
cd external/DCNv2
py -3.8 -m setup.py develop
※ちなみに▲では動かないです。
Windows10のPythonからYOLACT++するためにやったこと2020年10月版
▲に続きます。