M1 Macにopencv-pythonをインストールする方法

M1チップに対応したopencv-pythonがないので、Rosetta2変換で使用していましたが、nativeでどれだけ速度が違うのか知りたかったので、AArch64のopencv-pythonを入れてみました。

※追記事項

(5/24追記)安定して動作する方法が見つかったのでご紹介します。

M1で動作するMiniforgeをインストールし、Miniforge(conda)上でPython3.7.2の仮想環境を構築、その後condaのパッケージとしてOpencvをインストールすることで、NativeなOpencvが安定して動作しました。

Miniforgeのインストール方法は次の記事を見てください。

miniforgeをインストールしたら、python3.7.2仮想環境上にて次のコマンドでnumpy、opencvをインストールできます。

$ conda install numpy
$ conda install opencv

M1のOpencvに関する情報

M1 Macが発売されたばかりというのも相まって、情報が全然足りません。

かろうじて参考になった情報はこちらのGithubnのIssueページです。

Wheel support for macOS arm64 (Apple Silicon) · Issue #429 · opencv/opencv-python
OpenCV 4.50 supports building for Apple Silicon (view release notes, PR opencv/opencv#18094 was merged and released in 4.50). Now that the size limit for the pr...

インストールの手順

pyenvのインストール

まずはpyenvをインストールして、Pythonのバージョン切り替えを容易にしてください。

$ brew install pyenv

詳しくはこちらの記事をみてください。

pyenvのバージョンをPython 3.9.2に合わせてください。

opencv-pythonのgitリポジトリをクローン

$ git clone --recursive https://github.com/skvark/opencv-python.git

このとき、–recursiveオプションをつけるのが重要で、つけないと後で失敗します。

scikit-buildをインストール・ビルド

$ pip install scikit-build cmake

scikit-buildをインストール後にビルドすることで、次の動作が成功します。

opencv-pythonをビルド

$ python setup.py bdist_wheel

ビルドにはだいたい30分くらいかかります。

コメント

タイトルとURLをコピーしました