목표 : Single Board Computer(SBC) (Jetson nano 를 이용) 를 통해 DNN 기반의 Object recognition 수행.
Linux, Docker, Pytorch, ONNX, TensorRT, CNN, Transfer learning, Data pre-processing, feature engineering 등을 학습.
ㅇ 2019년 6월에 처음 출시, 임베디드 AI 개발을 위한 Single board computer (SBC)
ㅇ GPU는 Nvidia Maxwell 기반 128 CUDA 코어 사용 (CPU 128개와 유사한 연산 처리 가능)
Jetson nano developement kit 에는 여러 종류가 있는데, 그 중 Jetson nano 를 이용한다.
Jetson 은 AI 개발 또는 로보틱스 개발에 적합하다. 컴퓨터나 서버를 이용하기 보다는 Jetson을 이용하는 이유는 이동식 Portable 시스템에서 , Server + Cloud 에 비해 높은 반응 속도, 보안 확보, 비용 절감 등의 장점이 있기 때문.
jetson nano 는 다음과 같은 구조를 이룬다.
모니터에 직접 연결하는 방법과 원격으로 접속하는 Headless 한 방법이 있다. 모니터에 직접 연결하면, 쉽고 빠르다는 장점이 있지만, 이동식 시스템에 적용하기 어렵다. 반면 외부 PC 에 원격으로 접속하는 방법은 이동할 수 있지만, 느리다는 단점이 있다. 그중 원격으로 접속하는 Headless 한 방법을 이용하였다.
초기 부팅과 자동 로그인 세팅이 완료된 후, 외부 PC 에 연결을 하였다.
1. SD 카드 입력
나는 노트북과 연결을 하였다.
외부 PC 와 연결하기 위해 Putty 를 실행한다.
USB 직렬 장치 번호를 통해 , Jetson nano 원격 접속을 한다.
VNC 접속을 위한 설정
cd /usr/lib/systemd/user/graphical-session.target.wants
sudo ln -s ../vino-server.service ./.
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password $(echo -n 'sogang'|base64)
sudo reboot
VNC 이용
VNC 를 이용하여 접속한다.
Nano editor 설치
인터넷 연결이 끝났으면 ,
sudo apt-get install nano 를 이용하여 Nano editor 를 설치해준다.
CSI 카메라 테스트
gst-launch-1.0 nvarguscamerasrc sensor_mode=0 ! 'video/x-raw(memory:NVMM),width=3820, height=2464, framerate=21/1, format=NV12' ! nvvidconv flip-method=0 ! 'video/x-raw,width=400, height=300' ! nvvidconv ! nvegltransform ! nveglglessink -e