NVIDIA AGX Xavier는 고성능 딥러닝용 개발 보드로 512 Core GPU, 11 TFLOPS, 8-core ARM CPU, 16GB LPDDR, 32GB eMMC를 장착한 엠베디드 보드이다. 이로 인해 세그먼테이션, 포인트 클라우드 데이터셋같이 큰 GPU 메모리와 많은 계산량이 필요한 사례에 유용하다(ㅎ본인이 AGX를 세팅한 이유다). 관련 자세한 내용은 다음 링크를 참고한다.
그냥 AGX 자비에를 전원, 모니터 연결해 켜 보면, 우분투가 미리 설치되어 있는 것을 확인할 수 있다. 하지만, 이 우분투는 NVIDIA AGX 용 드라이버, 라이브러리 등이 전혀 설치되어 있지 않아 사용할 수 없는 것이다. 다음 방법을 통해 제트팩과 NVIDIA 보드용 리눅스를 설치해야 제대로 개발보드를 사용할 수 있다.
이후, 다음과 같이 I accept... 선택하고, CONTINUE 버튼을 누르면, 자동으로 각 SDK 도구가 다운로드 될 것이다.
다운로드에는 네트워크 상태에 따라 몇 시간 이상이 소요된다.
다운로드가 다 되면, 자동 설치가 진행된다. 이 때 다음과 같이 설치 옵션 선택 화면이 표시된다. 이때 Automatic에서 Manual로 수정한다.
이제 다음 단계를 진행한다.
NVIDIA AGX Xavier는 별도 부팅하고, 이미 설치되어 있는 우분투 설정을 완료한다.
JetPack설치를 위해 파워 종료한다.
엔비디아 자비에의 전원 반대쪽 USB 3.0포트와 노트북을 연결한다.
다음 그림에서 Force Recovery 버튼을 먼저 누르고, Power 버튼을 누른후 동시에 땐다. 그럼, AGX Xavier가 설치 가능 상태로 변경된다.
이 상태에서 노트북 우분투에서 보이는 다음 그림의 Flash버튼을 클릭한다. 그럼, 자비에 보드에 테그라용 우분투, 드라이버 등이 USB SSH를 통해 설치된다. 설치 후, 자비에 보드는 재부팅되고, 우분투 설정이 진행된다. 자비에 보드 우분투에 ID, PWD 입력 후 설정을 완료한다. 이후에는 노트북의 우분투 젯슨 설치 화면의 지시를 따라서 ID, PWD를 입력하고 install 을 실행하면 된다.
이 글은 페이스북에서 개발한 오픈소스 Detectron 2 기반 객체 세그먼테이션 프레임워크를 간략히 소개하고, 빌드 및 사용방법을 나눔한다.
Detectron2기반 실시간 객체 세그먼테이션
소개
객체 감지 및 분할은 자율주행차량에서 컨텐츠 이해에 이르는 다양한 목적에 사용된다. PyTorch에서 구현된 객체 인식 프레임웍인 Detectron2는 다양한 세그먼테이션을 지원한다. Detectron2는 페이스북에서 개발한 DensePose, Mask R-CNN 등을 제공하고 있다. 이를 통해, 스마트 카메라 등의 기능을 쉽게 개발할 수 있다. 이를 이용해, 손쉽게 다양한 사물들을 탐지하고 세그먼테이션하여, 객체의 유형, 크기, 위치 등을 자동으로 얻을 수 있다.
다음 영상은 이에 대한 소개이다.
이 프레임웍은 모델 설정 파일 및 모델을 config, model zoo 폴더에 별도 관리하고 있어, 다양한 모델을 재활용할 수 있다. tools 폴더에는 train_net.py 가 있어, 이를 통해 데이터학습을 지원한다.
디텍트론은 다양한 세그먼트 마스크를 지원하여 유용성이 높다. 다만, 세그먼테이션 모델로 속도가 그리 빠르지는 않다.
설치 및 빌드 방법
이 글에서 실행된 디텍트론2는 우분투 18.04, 엔비디아 드라이버 440.82, CUDA 10.0, cuDNN 7.6 환경에서 설치되었다. CUDA, cuDNN 설치는 다음 링크를 참고한다.