記)2021/02/27
具体的な導入方法を順次追加する。
Windows10を基準に書く。Macは持っていないので不明
無茶苦茶長いので、頑張って読み込んで下さい。
ちなみに、以下の記事(英語)を読めばわかると言えば身も蓋もないので日本語で詳しく書くことにする。
https://qengineering.eu/install-opencv-4.5-on-raspberry-pi-4.html
①RaspberryPiにOSをインストールする。
https://www.raspberrypi.org/software/
あ)Windows10PCにマイクロSDカード(16gでも実験だけなら可能だが、実用的なものを作るには最低でも32G以上を推奨)をセットし前記ソフトをインストールし起動。指示に従い書き込み
い)マイクロSDをラズベリパイへセットし起動
う)VNC、SSHを有効化する。
え)キャッシュを増やす
swapon
sudo sed -i -e 's/SWAPSIZE=.*/SWAPSIZE=2048/g' /etc/dphys-swapfile
sudo systemctl restart dphys-swapfile.service
swapon
②以下の記事に従ってbellsoftのJDKとsambaまで導入をすませる。
https://qiita.com/kamoshika9999/items/a7cffb954220e4afed10
Windows10からラズパイで実行するjavaFXプログラムをリモートデバッグする方法~環境構築からデバッグ実行まで②~
③依存関係をインストールする。Windows10でVNCからターミナルを起動し、コピ&ペースト&実行
この依存関係にあるパッケージだが詳しく調査出来ていない。OpenCVの使われ方によってはパッケージが不足し実行時エラーが出るかもしれない。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install cmake gfortran
$ sudo apt-get install libjpeg-dev libtiff-dev libgif-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install libgtk2.0-dev libcanberra-gtk*
$ sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev
$ sudo apt-get install libtbb2 libtbb-dev libdc1394-22-dev libv4l-dev
$ sudo apt-get install libopenblas-dev libatlas-base-dev libblas-dev
$ sudo apt-get install libjasper-dev liblapack-dev libhdf5-dev
$ sudo apt-get install protobuf-compiler
④2021/02/27時点で4系の最新版である4.5.1をダウンロード
wget https://codeload.github.com/Itseez/opencv/zip/4.5.1
/home/pi/に4.5.1のアーカイブがダウンロードされる。
⑤フォルダ作成、移動、解凍する
mv 4.5.1 opencv.zip
unzip opencv.zip
cd opencv-4.5.1/
⑥ANTのインストール
sudo apt-get install ant
⑦ANT_HOMEとJAVA_HOMEの設定 .bashrcの編集
sudo nano ~/.bashrc
⑧ANTのシンボリックリンクの修正
これをやらないとcmake-guiでパスが通らない
ln -snf /usr/share/ant/bin/ant /bin/ant
⑨ビルド用フォルダ作成
ここにopencv-4.5.1.jaraとネイティブライブライブラリである.soファイルが作成される
今回この2ファイルを作成できれば成功
mkdir build
cd build
⑩cmake-guiを実行 sudoをつけないとエラーが出るので注意
⑪ソースコードとビルドフォルダを選択する
⑫GroupedとAdvancedにチェックを入れてConfigreボタンを押す
⑬CMakeSetupダイアログが出るのでそのままFinishボタンを押す
⑭Configuring doneと表示されれば一応成功だが....肝心のJAVAラッパーが作成できていない
⑯エントリを追加する。間違いやすいところなので詳しく書く
あ)現在選択されているJDKを確認する
- 1 /usr/lib/jvm/bellsoft-java13-arm32-vfp-hflt/bin/java
が選択されているので
/usr/lib/jvm/bellsoft-java13-arm32-vfp-hflt/
をクリップボードへコピーしておく。
bin/javaまで選択しないこと
い)CMake-guiへ戻り、Add Entryボタンを押す
う)出てきたダイアログに先ほどクリップボードにコピーしたパスをValue値に張り付け、OKを押す
NameにJAVA_HOME
TypeにPATHを選択
え)エントリの最上部に追加されるので確認する
この時点ではJAVAのエントリグループにグループ化されて入らず、Configureを実行した後でグループ化される
お)Configureボタンを押す
完了後、ログのjavaの項目を確認するとYESに変わっているはず
か)もう一度Configreボタンを押す。するとUngrouped EntriesとOPENCVのエントリが赤から白に変わる
き)Generateボタンを押す。Generating doneと表示されればcmake-guiでの作業は終了。
cmake-guiを閉じる
⑰カレントフォルダが/home/pi/opencv-4.5.1/buildになっていることを確認してからmakeを実行する。
約6時間
sudo make -j3
今回はコア3つで実行することにする
失敗する場合は依存関係のパッケージが不足していのでログをよく見て適宜インストールすること
⑱カレントフォルダが/home/pi/opencv-4.5.1/buildになっていることを確認してからインストールする
sudo make install
⑲/home/pi/opencv-4.5.1/buildフォルダの
binに opencv-4.5.1.jar
libに libopencv-4.5.1.so
がそれぞれ入っているので確認しておく。
結局必要なのはこの二つで、どこに置いてもよいのでclasspathとDjava.library.pathで設定された位置にあれば良い
今回はここまで、次回はopencvのテスト起動とeclipseからリモートデバッグする方法を書く予定