2023年3月29日水曜日

VisionFive 2(Debian Image 202302 Released)でOpenCVをビルドする

目的


RISC-VのSBCであるVisionFive 2でOpenCVをソースからビルドしてみる。


環境




つまづきポイント


  • additional packagesにあるQtは依存関係のライブラリのバージョンアップデートによりリンクエラーとなってしまうため有効としない。
  • FFmepg、GStreamerのpkgconfigのパスがおかしいためにCMakeでエラーが発生する。
    pkgconfigファイル内のパスを直接編集する。


ライブラリのインストール


OpenCVに必要(とおもわれる)ライブラリを片っ端からインストールする。

$ sudo apt -y install build-essential cmake
$ sudo apt -y install python3-numpy python3-dev python3-matplotlib
$ sudo apt -y install libeigen3-dev libgflags-dev libgoogle-glog-dev
$ sudo apt -y install libopenblas-dev gfortran
$ sudo apt -y install libopenblas-openmp-dev
$ sudo apt -y install libblas-dev libatlas-base-dev libblis-dev
$ sudo apt -y install liblapacke-dev
$ sudo apt -y install liblapack-dev
$ sudo apt -y install libgtk-3-dev
$ sudo apt -y install libhdf5-dev


FFmpeg & GStreamerのpkgconfigの修正


VisionFive 2の開発元が提供するパッケージでFFmpeg、GStreamerなどのpkgconfigファイルでライブラリのパスが誤っている。
  • ライブラリは/usr/localにインストールだが、pkgconfigでは/code_mm/targetを参照している。。。

(69-imageのころからパスを変更したようだけど、pkgconfigファイルの中身はそのままみたい)

一括でパスを置換してしまう。

$ sudo sed -i 's@/code_mm/target/usr@/usr/local@g' /usr/local/lib/pkgconfig/*.pc


OpenCVのビルド


あとはOpenCVのソースコードをダウンロードして、ビルドする。
ビルドは4〜5時間ぐらいだったかも。

$ cd
$ mkdir opencv
$ cd opencv
$ git clone -b 4.7.0 https://github.com/opencv/opencv.git
$ git clone -b 4.7.0 https://github.com/opencv/opencv_contrib.git
$ mkdir build
$ cd build
$ cmake  \
    ../opencv \
    -DOPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules/ \
    -DOPENCV_ENABLE_NONFREE=ON \
    -DBUILD_EXAMPLES=ON \
    -DOPENCV_ENABLE_NONFREE=ON \
    -DWITH_OPENMP=ON \
    -DBUILD_EXAMPLES=ON \
    -DWITH_QT=OFF \
    -DWITH_VULKAN=ON
$ make -j3
$ sudo make install

最後に


これで色々とできるようになった。つぎはTensorFlow Liteをやってみる。


0 件のコメント:

コメントを投稿