Computer VisionやML (Machine Learning: 機械学習) 、AI (Artifact Intelligence: 人工知能) を使ったサービスやアプリを開発するときや、これらの技術について学習するときなどに、PythonとOpenCVを利用します。
PythonとOpenCVは開発環境さえ整えてしまえば、使っているOSに依存せず、ほぼ同じコードや手順で開発できます。例えば、筆者が学習でこの記事執筆時に読んでいる書籍はUbuntu Linuxを使っています。しかし、著者はWindowsやmacOSを使用しています。それでも書籍に書かれているPythonのコードはそのまま同じように動きます。また、必要なライブラリの導入方法も同じです。
この記事では、Computer Vision, ML, AI向けにPythonとOpenCVをセットアップする方法について解説します。
WSL: Windows Services for Linux のセットアップ
Windows上でUbuntuやmacOSと同じように開発するにはWSLが必要です。WSLのセットアップ方法については次の記事を参照してください。
シェルについて
この記事ではシェルでコマンドを実行します。macOSではターミナルアプリを使用します。WindowsではWSLのシェルを使用します。
Python3をインストールする
Windows (WSL)やUbuntuの場合はPython3は標準でインストールされていると思います。インストールされていない場合でも、この後のpip3
をインストールするときに依存関係の一つとしてインストールされると思います。
macOSの場合はXcodeをインストールすると、Xcodeの初回起動時のセットアップ処理の中でPythonやNumPyもインストールされます。Xcodeのセットアップ方法については次の記事を参照してください。
Mesa 3D Graphics Libraryをインストールする (WindowsとUbuntu)
MesaプロジェクトはOpenGLのオープンソース版です。次のようにapt
でインストールします。
sudo apt install libgl1-mesa-dev
Pip3をインストールする (WindowsとUbuntu)
PipはPythonの公式パッケージ管理ツールです。デフォルトでインストールされていると思いますが、apt
でインストールします。
sudo apt install python3-pip
Tkinterをインストールする
TkinterはPythonからGUIを扱うためのライブラリです。Pythonから画像やグラフなどを表示するときに、Matplotlibを頻繁に使用します。このときに必要になるライブラリです。apt
でインストールします。
sudo apt install python3-tk
インストールされていないと次のようなエラーが表示されて、MatplotlibのGUI機能が動作しません。
Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
plt.show()
OpenCVをインストールする
OpenCVをインストールします。Pythonから使用するのでpip3
を使ってPython用のパッケージをインストールします。
次のように入力するとインストール可能なバージョンがリストアップされます。
pip3 install opencv-python==
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement opencv-python== (from versions: 3.4.0.14, 3.4.10.37, 3.4.11.39, 3.4.11.41, 3.4.11.43, 3.4.11.45, 3.4.13.47, 3.4.15.55, 3.4.16.57, 3.4.16.59, 3.4.17.61, 3.4.17.63, 3.4.18.65, 4.3.0.38, 4.4.0.40, 4.4.0.42, 4.4.0.44, 4.4.0.46, 4.5.1.48, 4.5.3.56, 4.5.4.58, 4.5.4.60, 4.5.5.62, 4.5.5.64, 4.6.0.66)
ERROR: No matching distribution found for opencv-python==
この例では最新版は4.6.0.66
です。
最新版をインストールします。STEP 1で調べた4.6.0.66
をインストールします。
pip3 install opencv-python==4.6.0.66
OpenCVの拡張モジュールをインストールする
OpenCVの拡張モジュールをインストールします。OpenCVと同様にpip3
を使ってインストールします。
次のように入力するとインストール可能なバージョンがリストアップされます。
pip3 install opencv-contrib-python==
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement opencv-contrib-python== (from versions: 3.4.11.45, 3.4.13.47, 3.4.14.51, 3.4.15.55, 3.4.16.59, 3.4.17.61, 3.4.17.63, 3.4.18.65, 4.4.0.46, 4.5.1.48, 4.5.2.52, 4.5.3.56, 4.5.4.58, 4.5.4.60, 4.5.5.62, 4.5.5.64, 4.6.0.66)
ERROR: No matching distribution found for opencv-contrib-python==
OpenCVと同じバージョンをインストールします。STEP 1でOpenCVと同じ4.6.0.66
がインストールできることを確認できているので、4.6.0.66
を指定してインストールします。
pip3 install opencv-contrib-python==4.6.0.66
Matplotlibをインストールする
MatplotlibはPythonでグラフを描画するときに利用するライブラリです。Matplotlibがインストールされていない環境でMatplotlibを使おうとすると、次のようなエラーが表示されます。
from matplotlib import pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'
pip3
でインストールします。
pip3 install matplotlib
バージョンを指定することもできます。特に指定しないときは最新版がインストールされます。
QtのPythonバインディングをインストールする
OpenCVのcv2.imshow()
などを使ったときに、QtのPythonバインディングがインストールされていないと次のようなエラーが表示されます。
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/akira/.local/lib/python3.10/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb.
Aborted
QtのPythonバインディングをインストールします。次のようapt
でQt5のPython3バインディングをインストールします。
sudo apt install python3-pyqt5