Jetson Nano YOLOv5 실행하기

이도형·2024년 5월 10일
1
post-thumbnail

Jetson Nano에 설치된 Python은 기본적으로
Python 3.6.9 입니다.

하지만, YOLOv5의 요구 사항은

출처 : ultralytics/yolov5 Git 공식 문서

2024년 5월 10일 기준
Python>=3.8.0PyTorch>=1.8 입니다😨

그렇다면 방법이 2가지 있는데,
1 → Jetson Nano의 Python 버전을 업데이트 하기
2 → YOLOv5을 다운그레이드해서 사용하기

이 때, Jetson Nano는 JetPack 4.6이므로,
nvidia forum에 따르면 권장 사항은

출처 : forums.developer.nvidia.com

Python 3.6 기준 PyTorch 1.10 이하 입니다.

따라서 YOLOv5를 다운그레이드해서 사용하겠습니다.


들어가기 전

YOLOv5를 작업할 때 여러 의존형 packages가 설치됩니다.
이 때 설치/삭제를 하다가 오류가 생길 수 있기 때문에
가상 환경에서 하시길 바랍니다.

  • 가상 환경 설치
    (virtualenv가 venv보다 좋습니다)
sudo apt install python3-virtualenv



  • 가상 환경 생성
    (site-packages에 연결해야 Opencv, PyTorch, Torchvision 설치된게 딸려옵니다)
python3 -m virtualenv [가상환경이름] --system-site-packages



  • 가상 환경 실행
    (가상 환경이 실행되면 Command창 앞에 ([가상환경이름])이 나타납니다)
source [가상환경이름]/bin/activate



  • 가상 환경 나가기
deactivate

YOLOv5 적절한 버전 가져오기

  • YOLOv5 Git 가져오기
git clone https://github.com/ultralytics/yolov5

이 때 git이 동작하지 않는다면
pip install git




  • YOLOv5 버전 다운그레이드 (Downgrade)

YOLOv5는 2022년 1월말에 업데이트를 진행하면서,
최소 요구사항을 Python>=3.7로 수정했습니다.
(때문에 2022년 1월 초 버전으로 Downgrade 합니다)

cd yolov5
git reset --hard 9bcc32a

이렇게 하면 9bcc32a버전의 YOLOv5 Git으로 Downgrade 됩니다.


  • YOLO 요구사항(requirements.txt) 설치

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

./bashrc에 추가

아래 Command를 Terminal에 입력합니다.

nano ~/.bashrc

이 때 나타난 파일의 제일 아래 부분에

export OPENBLAS_CORETYPE=ARMV8

를 작성한 후,
Ctrl+XYEnter를 누른 후,

sudo reboot

를 Terminal에 입력해서 재부팅 시켜줍니다.


웹캠을 활용하여 YOLO 실행(Inference)하기

source [가상환경이름]/bin/activate
cd yolov5
python3 detect.py --source 0

마치며

해당 방법을 활용하면, 일단 실행이 가능하다는 것을 알 수 있습니다.
하지만 Custom Data를 활용하여 학습한 PyTorch Model은 충돌을 일으키는 경우가 많습니다.
또한, Inference 속도에서 문제에 봉착하기도 합니다.

이러한 방법에 대해서도 설명하도록 하겠습니다.

2024년 기준 YOLOv5Jetson Nano에서 실행하기 위해서는
YOLOv5 Git을 다운그레이드한 후 실행해야한다!

profile
열심히 살고 싶습니다! 일하고 싶습니다 :)

0개의 댓글

관련 채용 정보