目的
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 件のコメント:
コメントを投稿