Jetson Nano와 YOLO v5를 이용한 detection 프로젝트

윤준영·2022년 2월 23일
1

Projects

목록 보기
1/3

1. Jetson Nano 기본 설정

  1. SD 카드에 OS를 설치해줘야 한다. OS는 Jetson Nano Kit Sd Card Image를 다운로드 해야 한다.
  1. USB에 SD 카드를 꽂은 후 노트북에 연결해준다.

  2. balenaEtcher 를 설치해준다.

  1. 설치가 완료되면 다음과 같이 다운로드 받은 OS와 SD카드가 꽂힌 USB를 선택한 후 Flash를 누르면 된다.

  1. 설치가 완료되면 SD 카드를 제거한 후 Jetson Nano에 삽입해준다.

  1. 키보드, 마우스, 모니터를 Jetson Nano에 연결해준 후 전원을 키면 된다. 전원을 켠 후 설정을 모두 완료하면 다음과 같은 화면을 볼 수 있다.

2. Jetson Nano에서 YOLO v5 돌리기

YOLOv5를 돌리기 위해 다음 링크를 참고하였다.
-링크 : https://www.youtube.com/watch?v=8nHZKTkYACc

세팅을 완료한 후 해당 코드를 입력하여 YOLO v5를 돌리게 된다.

코드를 간단하게 살펴보자면 detect.py를 통해 실행되는 것을 알 수 있고, 데이터와 가중치를 입력해서 실행하는 것을 알 수 있다.

데이터는 --source 뒤에 넣어준다. 현재 'data/images'로 되어있는데, 이건 우리가 기본적으로 YOLOv5를 github에서 clone했을 때 주는 기본 이미지이다.

가중치는 --weights 뒤에 넣어준다. yolov5s.pt 또한 YOLO v5를 github에서 clone 했을 때 주는 pretrained 가중치이다. 이 가중치는 coco 데이터셋을 이용하여 훈련된 가중치이다.

3. Custom data를 이용한 detection

우리는 위의 양식에 맞춰서 우리가 원하는 목적에 맞게 YOLO v5를 사용할 것이다. 우리는 꿀벌의 피해를 최소화하기 위해 말벌을 실시간 detection 하여 처리하는 프로젝트를 진행하기로 하여 data 확보를 우선적으로 진행하였다. 해당 프로젝트와 관련된 data는 찾을 수 없어서 LabelImg를 이용하여 data를 확보하였다.

-LabelImg 사용법 링크 : https://www.youtube.com/watch?v=Tlvy-eM8YO4&t=280s

라벨링은 해당 논문을 보면서 진행을 하였다.



이렇게 확보한 데이터를 이용하여 YOLO v5 학습을 진행했다. 후에 최적의 성능을 내는 가중치를 얻을 수 있었다.

성능을 확인하기 위해 말벌, 꿀벌이 나오는 영상을 확보하여 실행해보았다.

완료가 되면 'runs/detect/exp' 경로에 저장이 된다.

일부를 보면

잘 detect 하고 있는 것을 확인할 수 있다.

3. 카메라를 이용한 실시간 detection

우선 실시간 detection을 하려면 카메라가 필요하다. 우리는 Intel realsense 카메라 D435 모델을 사용하였다. 해당 영상 또한 realsense 카메라에 초점을 맞춘 영상임을 인지한 후 시청하길 바란다.

실시간 detection은 아래 영상을 참고하여 진행하면 된다. 위에 있는 영상과 같은 영상이므로 영상의 중반부부터 참고하면 된다.

https://www.youtube.com/watch?v=8nHZKTkYACc

**우리 같은 경우에는 영상을 따라서 진행했지만 recognition_with_realsense.py 를 실행해도 에러가 났다. 그래서 python3 detect.py —source 2를 작성하여 실행하였다. 2는 우리가 연결한 usb 카메라의 포트번호이다. 포트번호는 terminal에 lsusb를 입력하여 확인할 수 있다.

실시간으로 잘 detect 하고 잇는 것을 확인할 수 있다. 추후에 우리가 학습한 가중치를 이용하여 embedded 개발을 할 예정이다.

profile
https://github.com/jjun9288

3개의 댓글

comment-user-thumbnail
2022년 8월 18일

안녕하세요. 카메라를 이용한 실시간 detection 부분에서 유튜브 동영상을 참고 하셨다고 봤습니다. 영상에서는 xavier를 사용하는데
블로그에서는 nano를 사용하였는데 영상을 그대로 따라하셨는지 또는 다른 점은 무엇이었는지 궁금해서 글 남깁니다.

1개의 답글
comment-user-thumbnail
2024년 3월 6일

젯슨나노에서 커스텀학습을 시키기엔 너무 오래 걸릴거 같은데 컴퓨터에서 학습후 bset.pt파일 옮겨 실행하면 학습결과 그대로 반영될까요?

답글 달기