2023년 10월을 기준으로
2023.09.11 - [라즈베리파이4] - [라즈베리파이4] 라즈베리파이4에 yolov5 설치하기
이 블로그 글을 이용하면 yolov5에 오류가 발생하더라고요
즉
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt coremltools tensorflow
sudo apt install libopenblas-dev libblas-dev m4 cmake cython python3-dev python3-yaml python3-setuptools
이렇게 사용하면
python detect.py
라즈베리파이4 yolov5를 이용하여 모델을 실행해봤을 때
segmentation fault가 나옵니다.
구글링으로 쳐도 나오지 않아서 해결 방법을 찾아봤습니다.
그래서 segmentation fault가 무엇인지 살펴보았습니다.
https://gem1n1.tistory.com/197
1. 잘못된 메모리 참조
2. 호환되지 않는 패키지 간 충돌
이 두가지가 원인이라고 합니다.
그런데 detect.py는 yolov5에서 만들어진 파이썬 파일이기 때문에 1번이 원인일 것 같지 않았고
2번 패키지 간의 충돌이라고 생각했습니다.
그래서 yolov5 segmentation fault를 해결하기 위해 가설을 세워봤습니다.
1. pip의 문제
2. 기본 패키지와 yolov5의 requirements.txt의 패키지 버전 충돌
3. requirements.txt가 다운 받는 패키지의 버전 문제
1. pip의 문제
pip3를 추천한다는 글을 보고 pip 대신 pip3를 사용하여 다시 requirements.txt를 설치했습니다.
->해결 안됨
2. 라즈베리파이에 설치된 기본 패키지와
yolov5의 requirements.txt의 패키지 버전 충돌
이때는, 가상환경을 만들지 않았기 때문에
기본 패키지와 requiremetns.txt의 패키지 버전이 충돌한 것이라고 생각했습니다.
그래서 가상환경을 만들어줬습니다.
가상환경에서 yolov5를 git clone하고 requirements.txt를 깔아줬습니다.
pip3 install vitualenv
virtualenv yolo5_1
cd yolo5_1
source bin/activate
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip3 install -r requirements.txt coremltools tensorflow
sudo apt install libopenblas-dev libblas-dev m4 cmake cython python3-dev python3-yaml python3-setuptools
설치 완.
가상환경으로 들어가서 python detect.py를 해봤습니다.
->해결 안됨
3. requirements.txt가 다운 받는 패키지의 버전 문제
기존에 $git clone https://github.com/ultralytics/yolov5.git을 하면
나오는 requirements.txt를 보겠습니다.
특정 버전 이상만 설치하면 된다는 requirements.txt이네요.
하지만 특정 버전 이상만 설치하면 되기 때문에 설치할 때마다 버전이 바뀌는 문제가 일어날 수 있을 것 같습니다
그래서 옛날에 anaconda를 이용해서 만든 yolov5 가상환경의 환경을 복사해서 새로운 requirements.txt를 만들어주겠습니다.
일단 pip list를 봅니다
pip list
가상환경이기 때문에 requirements.txt로 설치한 패키지들만 있네요
이제 이 list를 새로운 requirements.txt로 바꿔주겠습니다
pip freeze > new_require.txt
다른 폴더로 옮겨 이름을 requirements.txt로 바꾼 후 라즈베리파이4에 옮겨줍니다.
virtualenv yolo5_2
cd yolo5_2
source bin/activate
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip3 install -r requirements.txt
아까 옮긴 requirements.txt로 설치해줍니다.
->해결 완!!!!!!!
requirements.txt가 받은 패키지 문제였습니다....
'라즈베리파이4' 카테고리의 다른 글
[라즈베리파이4] STT (파이썬만으로도 가능) (2) | 2024.01.06 |
---|---|
[라즈베리파이4] GPIO를 이용하여 버튼 입력 받기 (0) | 2023.11.03 |
[라즈베리파이4] python-vlc를 사용하여 파이썬으로 음성 출력 (2) | 2023.10.31 |
[라즈베리파이4] gtts로 텍스트를 음성으로 변환하기 (2) | 2023.10.29 |
[라즈베리파이4] 라즈베리파이4에 yolov5 설치하기 업데이트 (0) | 2023.10.28 |