ラズパイ4でpythonを使って物体検出やるのにopencv入れたり色々入れるのが大変でめちゃくちゃはまったのでもっともはまった所だけメモ
というのもハマりすぎてどんなコマンド打ったか覚えていられないくらいハマって
tensorflowとかどうやって入れたか忘れました・・・
中でもエラーをググってもそれらしき解決法にたどり着くまでが一番厳しかったopencvの入れ方をメモ
まず、基本、apt-getでインストールできるのはpipではなくapt-getでインストールした方がはまらないと思われます。
pip3でインストールしようとして本当にはまったので。
一番参考になったのはここ
https://qiita.com/XM03/items/48463fd910470b226f22
インストールしようとすると下記エラーが出る。
ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8
sudo apt-get install liblapack-dev libcblas-dev libatlas-dev libatlas-base-dev libjasper-dev gstreamer1.0-plugins-base libqt4-test
sudo apt-get install libqtgui4
sudo apt-get install python3-pyqt5
pip3 install opencv-python
pip3 install opencv-contrib-python
pip3 install numpy
実行するユーザーのホームで
vim .bashrc
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1 #追加
source .bashrc
$ python3
>>> import cv2
>>> cv2.__version__
'バージョンが表示されればok'
keras-yolo3を入れる時に下記がないとうまくいかなかったはず
sudo apt-get install python3-h5py
ちょっと上記だけだとうまく行かない可能性もありますが、エラーを解読してググってなんとかしてください。
ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8
このエラーの対策が一番はまるのでここだけ抑えておけばいいかなと思います。