내가 학습시킬때 참고했던 자료에는 라즈베리 파이에서 동작시키는 방법이 제시되었있었다.
jetson nano같은 엣지 디바이스에서 시작하는 방법을 모두 알려주는 자료는 찾기가 어려워서 대충 뭉뚱그려 진행해봤다.
결과적으로 모델적용 및 웹캠 표출이 정상적으로 되는걸 확인했다. 물론 fps와 인식 성능이 좀 떨어지는 문제는 있지만 단기적으로 목표 시스템 구현은 가능하게 되었다.
이전 글에서는 opencv를 설치하는 과정까지 다뤘다.
이 글이 중요했던 이유는 opencv가 cuda를 지원하도록 재설치하기 위함이었고, 라즈비안이나 일반 linux에서 쓰는 방법대로 했다간 낭패를 보기 십상이었기 때문이다.
opencv 4.8.0 with CUDA를 잘 설치했다면 다음은 tensorflow를 설치해야한다. tensorflow 설치 후 tflite 모델을 로드하여 웹캠에서 읽어오는 프레임에 객체 인식을 적용했다.
여기서 tensorflow를 설치하는 과정이 조금 까다롭다. 왜냐하면 jetsonano에 설치된 jetpack의 버전이 설치할 tensorflow 버전과 호환되어야 하기 때문이다.
이전들에서 nvidia의 jetson nano set up guide 글의 image를 이용해 설치하면 jetpack 4.6.4 버전이 설치된다.
나는 일단 구글링을 통해 jetson nano에 최신버전 tensorflow를 설치하는 가이드를 nvidia 사이트에서 찾았지만 numpy 등 dependencies 들이 버전 호환성에서 문제를 일으며 설치가 안되었다.
그래서 찾은 페이지에 다음 내용이 적혀있었다. 그림을 클릭하면 이동한다.
Python 3.6.9, Jetpack 4.6.4 버전이 jetpack 4.6.3 버전과 호환될지도 모른다고 생각한건 순전히 가정이었다.
저기 나와있는 명령어들을 모두 수행하니 정상적으로 tensorflow가 설치되었다.
원래 같으면 jetpack의 버전을 확인하여 아래 사이트에서 호환되는 tensorflow 버전과 container 버전을 확인하여 설치를 위한 http 주소에 버전부분을 수정해야 한다. 그 이전에 직접 numpy 등 패키지를 설치하는 명령어를 수행해야 하는데 이 과정에서 어떤 버전의 패키지들이 필요한지 불분명하며 함부로 건드리면 망할것 같아서 별다른 조치는 취해보지 않았다.