Jetson Nano에 설치된 Python은 기본적으로
Python 3.6.9
입니다.
하지만, YOLOv5의 요구 사항은
2024년 5월 10일 기준
Python>=3.8.0
과 PyTorch>=1.8
입니다😨
그렇다면 방법이 2가지 있는데,
1 → Jetson Nano의 Python 버전을 업데이트 하기
2 → YOLOv5을 다운그레이드해서 사용하기
이 때, Jetson Nano는 JetPack 4.6
이므로,
nvidia forum에 따르면 권장 사항은
Python 3.6
기준 PyTorch 1.10 이하
입니다.
따라서 YOLOv5를 다운그레이드해서 사용하겠습니다.
YOLOv5를 작업할 때 여러 의존형 packages가 설치됩니다.
이 때 설치/삭제를 하다가 오류가 생길 수 있기 때문에
꼭 가상 환경에서 하시길 바랍니다.
sudo apt install python3-virtualenv
python3 -m virtualenv [가상환경이름] --system-site-packages
source [가상환경이름]/bin/activate
deactivate
git clone https://github.com/ultralytics/yolov5
이 때
git
이 동작하지 않는다면
pip install git
YOLOv5는 2022년 1월말에 업데이트를 진행하면서,
최소 요구사항을Python>=3.7
로 수정했습니다.
(때문에 2022년 1월 초 버전으로 Downgrade 합니다)
cd yolov5
git reset --hard 9bcc32a
이렇게 하면 9bcc32a
버전의 YOLOv5 Git으로 Downgrade 됩니다.
YOLOv5에서 요구사항 중 의존성 / 업그레이드로
충돌하는 경우가 많습니다.
때문에yolov5/requirements.txt
파일을 먼저 수정해줍니다.
# 위치 .../yolov5/
gedit requirements.txt
requirements.txt 파일을 아래와 같이 수정합니다.
# pip install -r requirements.txt
# Base ----------------------------------------
matplotlib<=3.2.2
Pillow<=8.4.0
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
tqdm>=4.41.0
# Logging -------------------------------------
tensorboard>=2.4.1
# wandb
# Plotting ------------------------------------
pandas>=1.1.4
seaborn>=0.11.0
# Export --------------------------------------
# coremltools>=4.1 # CoreML export
# onnx>=1.9.0 # ONNX export
# onnx-simplifier>=0.3.6 # ONNX simplifier
# scikit-learn==0.19.2 # CoreML quantization
# tensorflow>=2.4.1 # TFLite export
# tensorflowjs>=3.9.0 # TF.js export
# openvino-dev # OpenVINO export
# Extras --------------------------------------
# albumentations>=1.0.3
# Cython # for pycocotools https://github.com/cocodataset/cocoapi/issues/172
# pycocotools>=2.0 # COCO mAP
# roboflow
thop # FLOPs computation
이 후 해당 Command를 입력합니다. (실행 위치 : yolov5/
)
sudo pip3 install --upgrade pip
sudo python3 -m pip install -r requirements.txt
아래 Command를 Terminal에 입력합니다.
nano ~/.bashrc
이 때 나타난 파일의 제일 아래 부분에
export OPENBLAS_CORETYPE=ARMV8
를 작성한 후,
Ctrl+X
→ Y
→ Enter
를 누른 후,
sudo reboot
를 Terminal에 입력해서 재부팅 시켜줍니다.
source [가상환경이름]/bin/activate
cd yolov5
python3 detect.py --source 0
해당 방법을 활용하면, 일단 실행이 가능하다는 것을 알 수 있습니다.
하지만 Custom Data를 활용하여 학습한 PyTorch Model은 충돌을 일으키는 경우가 많습니다.
또한, Inference 속도에서 문제에 봉착하기도 합니다.
이러한 방법에 대해서도 설명하도록 하겠습니다.
2024년 기준 YOLOv5를 Jetson Nano에서 실행하기 위해서는
YOLOv5 Git을 다운그레이드한 후 실행해야한다!