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分くらいかかります。
コメント