今、話題の人工知能(AI)などで人気のPython。初心者に優しいとか言われていますが、全然優しくない! という事を、つらつら、愚痴っていきます

260.ラズパイ無双[7_Install OpenCV 4.5]

»

初回:2022/6/8

 Raspberry Pi (ラズベリーパイ、通称"ラズパイ")で何か作ってみようという新シリーズです。前回までに基本設定が出来ましたので、本題の『openCV』の環境づくりに取り組みたいと思います。
 なお、下記にご紹介する手順が、本当に正しいのか判りません。というのは私の環境では、Warning が出ます。そして、USBカメラを2台つなぐと動きませんし、PiCameraも動作しません。そしてカメラの設定もうまくできないようですし、カメラのフレームレート(FPS)も遅いです。

P子「全然ダメダメって事?」※1

 なので、openCVの設定は、自己責任でお願いします。ただし、今回、ラズパイには、Bullseye 64bit版を設定していますので、その性能を発揮するには、ソースからビルドする必要があると思っています。

 ≪参考資料≫
  https://qengineering.eu/install-opencv-4.5-on-raspberry-64-os.html
  Install OpenCV 4.5 on Raspberry 64 OS

【目次】

1.初めに

 1.OpenCV 4.5.5
  Python3インストールスクリプトが正しく変更されていません。
  すべてのライブラリが間違ったディレクトリに配置され、Pythonはそれらを検出しません。
   -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages
  をビルドに追加することにより、ライブラリは正しいフォルダーに保存されます。

 2.バージョンチェック
  $ uname -a
   aarch64 を確認
  $ gcc -v
   aarch64-linux-gnu を確認

 3.スワップチェック
  ※ 先に【256.ラズパイ無双[4.SDカード延命]】で、スワップを無効にしているので、サービスを再開します
   $ sudo systemctl enable dphys-swapfile
   $ sudo systemctl start dphys-swapfile
   $ systemctl status dphys-swapfile

   $ free -h

   Raspberry pi 3B+
   $ sudo nano /etc/dphys-swapfile
    #CONF_SWAPSIZE=100
    CONF_SWAPSIZE=6144

  4.5.62 は、4GBまたは8GBのメモリを搭載したRaspberryPi4を使用している場合は、何も変更されません
  2GBのRAMを搭載し たRaspberryPi4を使用している場合にのみ、zram構成ファイルのスワップスペースを増やす必要があります

  $ sudo nano /usr/bin/zram.sh
  # alter the limit with * 2
  mem=$(( ($totalmem / $cores)* 1024 * 3))
  # save with <Ctrl+X>, and
  $ sudo reboot

  4.5.0-4.5.1
  少なくとも合計5.5GBのメモリが必要です
  オンボードに4GバイトのRAMを搭載したRaspberryPiを使用する場合は、最大2048Gバイトに増やす必要があります。

 4.EEPROMチェック
  ※ Raspbery Pi 4 のみ

   EEPROMソフトウェアのバージョン
   EEPROMの内容を更新するだけで、CPUの熱が65°C(149°F)から48°C(118°F)に低下します。

   # 現在のステータスを取得するには
   $ sudo rpi-eeprom-update

   # 必要に応じて、ファームウェアを更新します
   $ sudo rpi-eeprom-update -a
   $ sudo reboot

 5.悪い考え
  RaspberryPiにOpenCVをインストールするためにpip3を使用しないでください。
  $ sudo apt installも使用しません。

 6.GPUメモリ
  必要に応じて少なくとも128Mバイトに変更します
   設定 → Raspberry Piの設定 → パフォーマンス → GPUメモリ を変更

 7.インストールスクリプト
  #最初にあなたの記憶をチェックしてください
  $ free -m

  #少なくとも合計6.5 GBが必要です!
  #そうでない場合は、ガイドで説明されているようにスワップスペースを拡大します
  $ wget https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-64-bits/raw/main/OpenCV-4-5-5.sh
  $ sudo chmod 755 ./OpenCV-4-5-5.sh
  $ ./OpenCV-4-5-5.sh

2.依存関係

 8.依存関係

  # 更新を確認します
  $ sudo apt update
  $ sudo apt -y upgrade

  # 依存関係
  $ sudo apt install build-essential cmake git unzip pkg-config
  $ sudo apt install libjpeg-dev libpng-dev
  $ sudo apt install libavcodec-dev libavformat-dev libswscale-dev
  $ sudo apt install libgtk2.0-dev libcanberra-gtk* libgtk-3-dev
  $ sudo apt install libgstreamer1.0-dev gstreamer1.0-gtk3
  $ sudo apt install libgstreamer-plugins-base1.0-dev gstreamer1.0-gl
  $ sudo apt install libxvidcore-dev libx264-dev
  $ sudo apt install python3-dev python3-numpy python3-pip
  $ sudo apt install libtbb2 libtbb-dev libdc1394-22-dev
  $ sudo apt install libv4l-dev v4l-utils
  $ sudo apt install libopenblas-dev libatlas-base-dev libblas-dev
  $ sudo apt install liblapack-dev gfortran libhdf5-dev
  $ sudo apt install libprotobuf-dev libgoogle-glog-dev libgflags-dev
  $ sudo apt install protobuf-compiler

 9.Qt5
  OpenCVの動作には絶対に必須ではなく 、外観を装飾するだけです。
  Qt5 を使用すると、OpenCVの速度が数パーセント低下することは言うまでもありません。

  #Qt5が必要な場合にのみインストール
  #OpenCVGUI を美化するには
  $ sudo apt install qt5-default

3.OpenCVをダウンロード

 10.OpenCVをダウンロード
   https://opencv.org/releases/
    Sources から取得する。

  # check your memory first
  $ free -m

  # you need at least a total of 6.5 GB!
  # if not, enlarge your swap space as explained earlier
  # download the latest version
  $ cd ~
  $ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip
  $ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip

  # unpack
  $ unzip opencv.zip
  $ unzip opencv_contrib.zip

  # some administration to make live easier later on
  $ mv opencv-4.5.5 opencv
  $ mv opencv_contrib-4.5.5 opencv_contrib

  # clean up the zip files
  $ rm opencv.zip
  $ rm opencv_contrib.zip

 11.仮想環境
  仮想環境は使用しません

 12.TensorFlow
  TensorFlowとOpenCVの両方をPythonにインポートすると、エラーがスローされる可能性があります 。
  この動作はaarch64システムでのみ発生し、OpenMPメモリ要件が満たされていないことが原因です。

  最初にOpenCVをインポートするのが最も簡単です。
  >>> import cv2
  >>> import tensorflow

4.Build Make

 13.Build Make
  ビルドファイルを配置できるディレクトリを作成する。

  $ cd ~/opencv
  $ mkdir build
  $ cd build

  $ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D ENABLE_NEON=ON \
    -D WITH_OPENMP=ON \
    -D WITH_OPENCL=OFF \
    -D BUILD_TIFF=ON \
    -D WITH_FFMPEG=ON \
    -D WITH_TBB=ON \
    -D BUILD_TBB=ON \
    -D WITH_GSTREAMER=ON \
    -D BUILD_TESTS=OFF \
    -D WITH_EIGEN=OFF \
    -D WITH_V4L=ON \
    -D WITH_LIBV4L=ON \
    -D WITH_VTK=OFF \
    -D WITH_QT=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
    -D BUILD_EXAMPLES=OFF ..

 14.Make
  $ make -j4

  $ sudo make install
  $ sudo ldconfig

  # cleaning (frees 300 KB)
  $ make clean
  $ sudo apt update

5.Checking

 15.Checking
  OpenCVは /usr/local ディレクトリにインストールされ、すべてのファイルが次の場所にコピーされます。

  /usr/local/bin       - 実行可能ファイル
  /usr/local/lib       - lib-ライブラリ(.so)
  /usr/local/cmake/opencv4  - cmakeパッケージ
  /usr/local/include/opencv4 - ヘッダー
  /usr/local/share/opencv4  - その他のファイル(例:XML形式のトレーニング済みカスケード)

  $ python
  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 cv2
  >>> cv2.__version__
  '4.5.5'
  >>>

 16.クリーニング
  $ sudo nano /etc/dphys-swapfile

   set CONF_SWAPSIZE=100 with the Nano text editor

  $ sudo reboot

  ディスク容量が不足している場合は、~/opencvフォルダーと~/opencv_contribフォルダーを削除することを検討 してください。

  # just a tip to save some space
  $ sudo rm -rf ~/opencv
  $ sudo rm -rf ~/opencv_contrib

6.最後に

 とにもかくにも、openCV のインストールが完了しましたので、次回からはこれを中心に解説していきたいと思います。

ほな、さいなら

======= <<注釈>>=======

※1 P子「全然ダメダメって事?」
 P子とは、私があこがれているツンデレPythonの仮想女性の心の声です。

Comment(0)

コメント

コメントを投稿する