LoginSignup
1
2

More than 1 year has passed since last update.

Raspberry Pi3 ModeB+ Python3 OpenCV構築

Last updated at Posted at 2022-08-18

はじめに

2022年8月時点で、Raspberry pi3にPython Opencvを設定しようとしたら、問題に遭遇して多くの時間を費やしたので、参考までに成功した手順を記録しておきます。
結論として、numpyのバージョン問題だったと思われます。
Raspberry pi3 アップデート後 のnumpy '1.19.5' を'1.23.2' にアップグレードすることで解決しました。

OSイメージの作成

OSのイメージは、Raspberry Pi Imager を使って作成しました。
イメージの作成、起動、ネットワークの設定を終えて、アップデート(約2時間ほどかかります)を行います。
Release 2.4 March 2022

すでにPython3, pip3はインストールされています。

  • Debian 11.4
  • Python 3.9.2 (default, Mar 12 2021, 04:06:34)

Opencv-Pythonのインストール

numpy opencvの状態を調べます。

pi@raspberrypi:~ $ python3
Python 3.9.2 (default, Mar 12 2021, 04:06:34)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.__version__
'1.19.5'
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
>>>

numpy はインストールされているが opencvがインストールされていません。

opencvをインストールする前に、必要なライブラリをインストールします。今回下記のライブラリを追加しました。

sudo apt-get install libhdf5-dev libhdf5-serial-dev libatlas-base-dev -y

opencv-pthyonのインストール

本来次のコマンドでnumpy. opencvがpython3で使えるようになるはずですが、import cv2でエラーが発生します。

sudo pip3 install opencv-python
pi@raspberrypi:~ $ sudo pip3 install opencv-python
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting opencv-python
  Downloading https://www.piwheels.org/simple/opencv-python/opencv_python-4.6.0.66-cp39-cp39-linux_armv7l.whl (11.3 MB)
     |████████████████████████████████| 11.3 MB 19 kB/s 
Requirement already satisfied: numpy>=1.14.5 in /usr/lib/python3/dist-packages (from opencv-python) (1.19.5)
Installing collected packages: opencv-python
Successfully installed opencv-python-4.6.0.66

import cv2で確認するとエラー

pi@raspberrypi:~ $ python3
Python 3.9.2 (default, Mar 12 2021, 04:06:34) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import cv2
RuntimeError: module compiled against API version 0xf but this version of numpy is 0xd
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/dist-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/usr/local/lib/python3.9/dist-packages/cv2/__init__.py", line 153, in bootstrap
    native_module = importlib.import_module("cv2")
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: numpy.core.multiarray failed to import
>>> 

下記の方法で解決できました。

numpyの更新

pi@raspberrypi:~ $ pip3 install numpy --upgrade
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (1.19.5)
Collecting numpy
  Downloading https://www.piwheels.org/simple/numpy/numpy-1.23.2-cp39-cp39-linux_armv7l.whl (12.3 MB)
     |████████████████████████████████| 12.3 MB 56 kB/s
Installing collected packages: numpy
  WARNING: The scripts f2py, f2py3 and f2py3.9 are installed in '/home/pi/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed numpy-1.23.2

import cv2で確認

pi@raspberrypi:~ $ python3
Python 3.9.2 (default, Mar 12 2021, 04:06:34)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.__version__
'1.23.2'
>>> import cv2
>>> cv2.__version__
'4.6.0'
>>>

OK

opencv-conntrib-python のインストール

その後、必要に応じて、opencv-contribもインストールできます。

今回、上記の作業後 sudo pip2 install opencv-contrib-python を実行すると、インストールが終わらない状態になりました。

この記事を作成する前は、sudo pip2 install opencv-python opencv-contrib-python としてconrtribも同時にインストールできたのですが、今回別々だとできません。なぜか? なぞです。

追記

その後、opencv-contribのインストールについては、下記のバージョンでインストールに成功しました。

sudo pip3 install opencv-contrib-python==3.4.14.51

こちらは、インストールは瞬時に完了しました。
やはり、バージョンの問題だったのか...かなり時間がかかった。

参考文献

[NumPyとOpenCVのimportでエラーが出る件] https://qiita.com/thinknee/items/9489119c8b85d9323132
[ラズパイ(Raspberry Pi)へのOpenCVのインストール方法・手順] https://python-academia.com/raspberrypi-opencv/

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2