目的
RISC-VのSBCであるVisionFive 2でOpenCVをソースからビルドしてみる。
環境
- VisionFive 2 Debian Image 202302 Released
- 
      VisionFive 2 Debian Wiki - 202302 Release Minimal Imageのadditional packagesをインストール。
 FFmpegやGStreamerを利用するため。
 install_package_and_dependencies.shを実行する。
つまづきポイント
- 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 件のコメント:
コメントを投稿