min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

RaspberryPi3 + yolo 5 物体検知(Python3.7.3 → 3.9.18へアップデートも)→ numpyでエラー格闘 → OSをbusterからbullseyeへ

ハピタス登録で1,000円分になるURL

その買うを、もっとハッピーに。|ハピタス

 

RaspberryPi4 で Yolo v5 が動くらしい。

qiita.com

 

ラズパイ3 + Yolo 5 も試す

$ git clone https://github.com/ultralytics/yolov5.git

 

$ git clone 'https://github.com/Kashu7100/pytorch-armv7l.git'

 

$ cd pytorch-armv7l/

$ sudo pip3 install torch-1.7.0a0-cp37-cp37m-linux_armv7l.whl

 

$ sudo pip3 install torchvision-0.8.0a0+45f960c-cp37-cp37m-linux_armv7l.whl

pytorchがちゃんと動くか確認

$ python3

>>> import torch

やはりlibopenblas.so.0がないと怒られる。

インストールすれば解決

$ sudo apt-get install libopenblas-dev

$ python3

>>> import torch

おっっしゃ入った!

 

requirements.txt を本家からゲット

これが本家

https://github.com/ultralytics/yolov5

github.com

vimでrequirements.txt作ってコピペしてtorchとtorchvisionをコメントアウトする。

$ vim 'requirements.txt'

requirements.txt からインストール

$ pip3 install -r requirements.txt

エラー出た。

pythonのバージョンを3.8以上に上げなきゃいけない。

 

$ wget 'https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz'

$ tar zxvf Python-3.9.18.tgz

$ ./configure

$ make

$ sudo make install

コンパイル成功したらバージョン確認

必ず新しいターミナルを上げてのバージョン確認が必要らしい

おっしゃ!python3.9.18にアップグレードされてる。

もう一度 requirement.txt からインストール

$ pip3 install -r requirements.txt

どうもnumpyのバージョンが古いの悪いっぽい。numpy-1.22.2より上のバージョンへアップグレードが必要だ。

 

$ pip3 install numpy --upgrade

 

$ pip3 install numpy --upgrade --ignore-installed

pipをアップグレードしてみるか

$ /usr/bin/python3 -m pip install --upgrade pip

$ /usr/bin/python3 -m pip install pip

numpyアンインストール

$ pip uninstall numpy

$ pip list | grep numpy

バージョン指定してインストール

$ python -m pip install numpy==1.22.2

エラー。

 

インストールできるnumpyのバージョンの確認

$ python3 -m pip install numpy==

やはりエラー。

 

もっかいpipのアップグレード

$ python3 -m pip upgrade pip

新しいターミナルを立ち上げ。

 

python3-pipってのをインストールしてみる。

$ sudo apt-get install python3-pip

既に最新バージョンと言われた。

 

気を取り直してnumpyもっかいインストールしたれ。

$ python3 -m pip install numpy

うまくいった!numpyのバージョンが最新のnumpy-1.26.0になってる!

 

3度目の正直 requirement.txt からインストール

$ pip3 install -r requirements.txt

 

エラー、だと…?

ええい、もっかい。

$ pip3 install -r requirements.txt

$ pip3 install opencv-python

$ sudo apt install -y libatlas-base-dev

$ pip install opencv-python==4.6.0.66

$ python3

>>> import cv2

numpyうまく入ってないっぽいぞ。

$ python3

>>> import numpy as np

やはりエラーか。

numpyをアンインストール。

$ pip uninstall numpy

アップグレードを指定してnumpyインストール。

$ python -m pip install numpy --upgrade

$ pip uninstall numpy

$ python -m pip install numpy==1.26.0 --upgrade

そうか。古いコンソールでやったからいけないのか。

新しいコンソールを上げてもっかいnumpyのアンインストールとインストールを試す。

$ python3

>>> import numpy as np

エラー…なぜだ。

GLIBC_2.29' not found とあるから、そもそもpython3.9のインストールで失敗してるのか?

 

これか。

 

お!どうやらラズパイのnumpyこのインストール方法が正しいっぽいぞ!

https://www.piwheels.org/project/numpy/

$ pip3 uninstall numpy

 

$ sudo apt install libgfortran5 libopenblas0-pthread

まだエラー出よる…

 

いや待てよ。

https://www.piwheels.org/project/numpy/

をよく見ると、How to install this version のリンクがある。

今のディストリビューションを調べると…

$ lsb_release -a

busterか!buster + Python3.9 な環境なわけだけど、インストールできるのか?やってみるしかない。

$ wget 'https://www.piwheels.org/simple/numpy/numpy-1.26.0-cp39-cp39-linux_armv7l.whl#sha256=5d2199b4249c2040835eafa937af42253ee55049b94f4a5d22bf481b9c351b30'

$ sudo pip3 install numpy-1.26.0-cp39-cp39-linux_armv7l.whl 

ダメか…

 

そもそもBusterにはPython3.9は入らなかった

なんてこった。BusterからBullseyeにアップグレードが必要なのか。

https://github.com/numpy/numpy/issues/20371

 

qiita.com

 

$ sudo vim /etc/apt/sources.list

変更前

変更後


$ sudo vim /etc/apt/sources.list.d/raspi.list

変更前

変更後

 

$ sudo apt update

公開鍵エラーか。ちっ。

 

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9


$ sudo apt update

 

$ sudo apt upgrade -y

 

 

 

 

 

 

 

ちなみに、使うべきはpipなのか?pip3なのか?sudoは付けるべきか?の答えはこれ。ラズパイではpip3を使うのが正しい。



github.com