[Python] 機械学習の画像認識のために OpenCV を Windows にインストールしてみた

Pocket

他のサイトを参考にしながら、画像の物体認識・画像処理のために OpenCV を Windows Server 2012 R2 にインストールしようしたら、滅茶苦茶ハマったので、メモとして残しておく。
ちなみに、OpenCV は、画像や動画を処理するのに必要な機能が実装されており、機械学習機能もある便利なライブラリです。
BSDライセンスなので商用目的でも利用でき、マルチプラットフォーム対応、しかも開発元がインテルです。

(1) 動作確認環境

Anaconda 2018.12
Python 3.7
Windows Server 2012 R2 Standard 64 ビット
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz (4 CPUs)
16384MB RAM
Python 3.7.1
OpenCV 4.0.1

以降では、
Anaconda がインストールされている前提で話を進めていく。
Anaconda のインストールがまだの場合は、「Anaconda のインストール方法」を参考にしてください。

(2) Visual C++ 2017 をインストール

以下のサイトを読むと
https://www.lfd.uci.edu/~gohlke/pythonlibs/
Python 3.x で実行するためには「Visual C++ redistributable packages for Visual Studio 2017」をインストールする必要があるらしい。

以下のサイトから vc_redist.x64.exe をダウンロードし、実行する。
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

(3) OpenCV のインストール

以下のサイトから、numpy-1.15.4+mkl-cp37-cp37m-win_amd64.whl をダウンロードした。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

以下のサイトから、opencv_python-4.0.1-cp37-cp37m-win_amd64.whl をダウンロードした。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

メモ:ダウンロードしたファイル名の cp37 という値は、意味は知らないが、一致させておいた方が良さそうなので、同じにした。

スタートメニューから「Anaconda Prompt」を起動し、それぞれ以下のコマンドを実行し、インストールする。
ネットワークにプロキシがある場合は、コマンドのオプションとして「–proxy=<プロキシのURL>」を付ける。

 

(4) Windows Server Essentials エクスペリエンスの設定

サーバーマネージャーを起動、画面右上の「管理」-「役割と機能の追加」をクリックする。

ウィザードが開始するので、そのまま次へ。

そのまま次へ。

そのまま次へ。

「Windows Server Essensials エクスペリエンス」を選択し、次へ。

そのまま次へ。

インストールが終わったら、閉じる。

(5) Windows Server Essentials Media Pack のインストール

以下のサイトから wsemp.exe をダウンロードする。
https://www.microsoft.com/en-us/download/details.aspx?id=40837

wsemp.exe をチェックし、「Next」ボタンをクリックすると、ダウンロードが開始する。

wsemp.exe を実行し、次へ次へと進み、「今すぐ再起動」をクリックする。
再起動するまで、裏で色々しているらしく、起動するまで結構長い。間違っても、強制シャットダウンはしないように。

(6) インストール確認

スタートメニューから「Anaconda Prompt」を起動し、以下のコマンドを実行する。

以下のように、4.0.1 と表示されれば、インストール完了。

ちなみに、Dependency Worker で不足している DLL を確認して、追加する方法でも良さそう。

以上です。

1件のコメント

  1. python3.7ですが、この方法を試したらうまくいきました。 感謝いたします。
    使用したwhlファイルは「opencv_python-4.1.2-cp37-cp37m-win_amd64.whl」です。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です