ラズパイにOpenCV(cv2)をインストールしたらちょっと手こずったので記事にしておく | そう備忘録

ラズパイにOpenCV(cv2)をインストールしたらちょっと手こずったので記事にしておく

ラズパイにOpenCV

Raspberry Pi 4BにOpenCV(cv2)をインストールした時の備忘録。

OpenCV(Open Source Computer Vision Library)はインテル社が開発したオープンソースの画像処理ライブラリー。

Pythonから画像、映像を扱う時はほぼ必須といってもよいライブラリーなのだが pip3 でインストールをするとモジュールが足りないとのメッセージが表示されてしまったので、その時の対応記録を残しておく。

環境

尚、OpenCVをインストールした環境は以下の通り。

OS

Raspberry Pi OS(32-bit)Released 2021-01-11

ラズパイ本体

Raspberry Pi 4B

Python

Python Version 3.7

ラズパイOSのpythonのデフォルトは2.7になっている。

pythonのデフォルトを3に変更する方法は以前の「RaspberryPiでPythonのデフォルトをPython2.7からPython3に変更する」の記事を参照して欲しい。

OpenCVをインストール

インストールコマンド

ラズパイのXLTerminalから以下のコマンドでOpenCVをインストールした。

sudo pip3 install opencv-python
OpenCVをインストール

インストール自体は何のエラーも出ずに終了したのだがcv2を import しようとすると “ImportError: libcblas.so.3: cannot open shared object file: No such file or directory” でエラーになってしまう。

パッケージの検索

libcblas.so.3 オブジェクトファイルが見つからないとのエラー。

OpenCVが内部で使用しているパッケージが不足しているだと思われる。

Raspberry Pi OSのベースは Ubuntu なので ubuntu のパッケージ検索のページにて対象パッケージの検索を行う。

  • キーワード:libcblas.so.3
  • キーワードを名前に含むファイルが含まれるパッケージ
  • ディストリビューション:bionic
  • アーキテクチャー:すべて

「検索」ボタンをクリックする。

尚、bionic は Ubuntu 18.04LTS のバージョン名。

16.04LTSが Xenial、20.04LTSが Focal のバージョン名となっている。

libcblas.so.3が含まれるパッケージを検索

ラズパイの armプロセッサーの部分を見ると libatlas3-base パッケージに libcblas.so.3 が含まれている事が分かる。

パッケージにlibatlas3-baseが表示された

libatlas3-base パッケージはubuntuのドキュメントによると「オートマチックにチューンされた線形代数のソフトウェア」との事。

cv2 で線形代数の計算の際にこのパッケージを使用するのだと思う。

パッケージの追加

以下のコマンドで libatlas3-base パッケージをインストールする。

sudo apt-get install libatlas3-base

libatlas3-base パッケージをインストールしたら今度はエラーにならずに cv2 を import できた。

libatlas3-baseパッケージをインストールしたら今度はエラーにならずにimportできた

以上でラズパイにOpenCV(cv2)のインストールをした記事を終了とする。

2021年9月24日 追記

上記の手順でインストールした後、import cv2 にてnumpyのバージョンが違うと RuntimeError が発生してしまった事があった。

その時の対処方法を別記事にしておく。

最後に

この記事が何処かで誰かの役に立つことを願っている。

尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

2件のフィードバック

  1. こちらのページが大変参考になり、何時間もできずに悩んでいたことが解決しました。ありがとうございます。私の環境ではpython3 ○○.pyというようにヴァージョンを指定して実行しなければならいようでした。

    • souichirou より:

      ひねくれ草 さん
      コメント、ありがとうございます。
      解決したようで何よりです。
      pythonのバージョン指定に関してはデフォルトが2.xになっているのだと思います。
      デフォルトを3.xに変更する方法と記事中に追記しておきますね。

ひねくれ草 へ返信する コメントをキャンセル

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。