Jetson nano 설정 및 USB 카메라를 사용한 이미지 인식(YOLO) 동작

Jetson nano 설정 및 USB 카메라를 사용한 이미지 인식(YOLO) 동작



Jetson nano는 NVIDIA의 GPU가 실린 Raspberry Pi 사이즈의 보드입니다.

간단한 설정으로 Ubuntu와 NVIDIA Driver, CUDA가 갖추어진 환경이 갖추어지므로, CPU에서는 너무 무거워 움직이지 않는 딥 러닝등을 개인으로 조금 시험하기에 좋은 디바이스일까 생각합니다.

시도에 USB 카메라를 연결하여 Yolo를 움직였습니다.

사용한 하드웨어


  • Jetson Nano Developer Kit
  • 128GB Micro SD 카드
  • 전원 어댑터 5V/4A
  • USB 카메라
  • USB WiFi 모듈
  • 점퍼 핀

  • J48에 점퍼 핀을 연결하면 DC 잭 전원으로 전환됩니다. 디폴트의 ​​USB 전원 공급이라면 처리 부하가 늘어날 때 안정 동작하지 않습니다.



    초기 설정



    Wifi로 연결하고 원격 데스크톱에서 Jetson nano를 작동하는 환경을 만듭니다.

    우선, OS 이미지는 NVIDIA 사이트 에서 Jetson nano 전용의 (Ubuntu 18.04 LTS)가 배포되어 있으므로 Jetson Nano Developer Kit SD Card Image라는 파일을 다운로드합니다.

    SD 카드에의 이미지의 기입은 balenaEtcher 등으로 실시합니다. balenaEtcher 작업은 이미지 파일을 선택하고 "Flash"버튼을 클릭하기 만하면됩니다.
    SD 카드를 삽입하고 Jetson nano를 처음으로 부팅하면 일반 Ubuntu 설치와 동일한 설정을 수행합니다.

    원격 데스크톱 설정에 관해서는 여기 의 사이트대로 진행되었습니다.

    이미지 인식 (Yolo) 동작



    Yolo의 동작에는 OpenCV가 필요하므로 설치합니다.
    저는 다음 Jetson nano 스크립트를 사용했습니다.
    git clone https://github.com/mdegans/nano_build_opencv
    cd nano_build_opencv
    ./build_opencv.sh $1
    

    그런 다음 Yolo를 다운로드합니다.
    git clone https://github.com/pjreddie/darknet
    cd darknet
    

    Makefile을 다음과 같이 변경합니다.
    GPU=1
    CUDNN=1
    OPENCV=1
    

    make와 실행하여 이미지 인식이 움직입니다. 1.5 fps 정도입니다.
    make
    ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
    



    장시간 움직이면 동결됩니다. 정밀도는 떨어지지만, 이하의 연산량이 낮은 실행 방법도 있습니다.
    ./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights
    

    Jetson nano용의 샘플에서도 USB 카메라를 사용한 화상 인식을 할 수 있습니다.
    cd jetson-inference/build/aarch64/bin/
    ./imagenet-camera googlenet --cmera /dev/video0
    

    좋은 웹페이지 즐겨찾기