SD Card에 JetPack 설치가 끝나면... Jetson Nano 에... card를 설치하자...

설치후 처음 부팅을 하면.... Ubuntu 18.04 초기 설정 화면이 나온다.. Nvidia 라이센스 수락을 해주면...

기본적인 Ubuntu 18.04 초기 설정 단계를 진행 하면 된다..

처음엔.. 시스템 언어 설정... 영어로 설정.. 

두번째로 네트워크 설정... 사용중인 Wifi 신호가 있으면.. 이때... 사용하는 SSID 값을 선택해준뒤.. 그에 맞는 비밀번호를 입력한뒤 다음단계로...

타임존 선택?? 위치 선택?? Seoul 을 선택!!!

User ID와.. Password를... 설정해준뒤.. 다음으로...

남은 메모리 공간을 App Partition으로 설정... 

Nvpmodel mode는 성능 제한 설정으로.. 2가지 Power 모드로 설정이 가능하다..

MAXN 모드는 10W 모드로.. 5V/4A의 아답터를 사용할때 사용하는 모드로.. 최고 성능을 발휘해준다..

5W 모드는 Micro USB (5V/2A)의 전원을 공급받을때 사용하는 모드이다.. J48점퍼스위치를 제거해주면 사용이 가능하다.

모든 설정이 끝나면.. 설정에 맞춰 자동으로 셋팅.. 마무리 해준다..  설치가 마무리 되면.. 드디어.. 로그인 화면을 만나볼수 있다.

로그인을 하면.. Nvidia 로고와 함께.. 부팅 완료!!

제일 처음은 좌측 독에 보면.. 소프트웨어 업데이트 부터 해보자... 

패스워드 입력해주면.. 알아서 업데이트 시작!!

업데이트가 끝나면.. 재부팅 해주자.. Restart Now!!

터미널 창을 열고 나서.. 이번엔... 

$ sudo apt-get update -y

입력해주자..

비밀번호 입력해주면.. update 작업이 진행된다...

update 작업이 완료되면.. 마지막으로 upgrade 작업을 해주면 초기 셋팅이 마무리 된다.

터미널창에 

$ sudo apt-get upgrade -y

입력해주자..

이로써 초기 설정이 마무리 되었다....

NVIDIA Jetson Nano Developer Kit  준비가 되었으면 JetPack 을 설치해보자...

 

우선 최신 JetPack을 다운받자...

 

https://developer.nvidia.com/embedded/jetpack

 

JetPack SDK

NVIDIA JetPack SDK is the most comprehensive solution for building end-to-end accelerated AI applications. All Jetson modules and developer kits are supported by JetPack SDK.

developer.nvidia.com

으로 이동해서 본인이 가지고 있는 Jetson Nano 모델에 맞는 SD Card Image를 다운받는다...

이 글을 정리하는 2022년 3월 26일 기준으로 현재 최신 JetPack은 4.6.1 버전이다...

 

다운로드가 완료 되었다면... 

https://www.balena.io/etcher/

 

balena - The complete IoT fleet management platform

Infrastructure and tools to develop, deploy, and manage connected devices at scale. Your first ten devices are always free.

www.balena.io

로 이동하여 본인 컴퓨터 OS에 맞는 버전의 balenaEtcher를 다운받아 설치 한다..

 

설치가 끝났으면... balenaEtcher를 실행해보자....

그리고 jetpack를 설치할... SD카드를... PC에 연결하면.. SD카드의 현재 파티션 종류에 따라 카드 인식은 되지만 경고 메세지가 뜨는 경우도 있다.. 인식만 되면.. 경고따위... 무시해주자..

balenaEtcher 초기화면이다...

Flash from file 메뉴 버튼을 눌러서 다운받은 JetPack SD Card 이미지를 선택해주자..

그런다음 다음단계는... 해당 Jetpack을 풀어서 설치해줄... SD카드 가 연결되어 있는 드라이브를 선택해주는 단계이다..

드라이브 선택 단계가 끝나면... Flash 버튼을 눌러서 설치 시작!!!!

이미지를 굽는 단계와 잘 구워졌는지 확인하는 단계가 끝나면.. SD카드로 JetPack을 설치하는 과정은 끝!!!

설치가 마무리 되었으면 Jetson Nano의 SD카드 슬롯에 장착해주자...!!

 

 

 

다나와 사이트에서 Micro SD 메모리를 검색해보면 제일 처음 확인가능한 검색 옵션....

 

http://prod.danawa.com/list/?cate=12237621&searchOption=/innerSearchKeyword= 

 

마이크로SD : 다나와 가격비교

태블릿/모바일/디카>메모리카드/리더기>마이크로SD 가격비교 리스트 입니다. 다나와의 가격비교 서비스로 한눈에 비교하고 저렴하게 구매하세요.

prod.danawa.com

여기 옵션 내용을 확인해보면.... 우선 속도타입에 마우스 오버 하면.. 확인가능한 정보...

속도 측면에서 볼때... 최고로 빠른 속도를 지원하는 모델을 선택하려면 해당 옵션에서 UHS-II(U3) > UHS-I(U3) > UHS-I(U1) 순이다..

그러나 검색해보면 알겠지만... 현재 UHS-II(U3) 속도를 지원하는 최고 용량은 256Gb, UHS-I(U3), UHS-I(U1) 속도를 지원 하는 최고 용량은 1Tb 이다.

 

두번째 옵션인 영상 쓰기 속도 옵션을 살펴보면...

위 내용을 보면 쉽게 이해가 가능하다. V90 에 가까울수록... 쓰기속도가 빠름을 확인할 수 있다.

 

다음 옵션을 저장방식...은...

즉... SLC > MLC > TLC 순으로 더 좋지만.. 그만큼 가격이 상승하게 된다. 그러나.. 옵션에 SLC 옵션이 없다는것을 보면... Micro SD 를 SLC 방식으로 제작하기 힘들다는것이 예상된다.

검색해보면 MLC 저장방식으로 구매 가능한 최고 용량은 256G 이며 기본적으로 128G 모델이 보편적이며 TLC 방식이 주류를 이루는것이 확인가능하다...

 

마지막 옵션 고사양 앱 구동 옵션을 살펴보자.

위 내용을 확인해보면...  고사양 앱 구동 옵션은 A2 > A1  순이다...

 

최근 프로젝트를 진행 하면서 구입한 메모리와 실습용으로 제공받은 메모리를 비교해보면...

실습용으로 제공받은 메모리는 UHS-I(U1)이며 프로젝트용으로 구매한 메모리는 UHS-I(U3) 로 프로젝트용으로 구매한 메모리의 속도가 빠름을 확인할수 있으며 제공된 읽기 쓰기 속도를 비교해도 실습용은 쓰기속도는 제공되지 않으며 읽기속도 95MB/s 프로젝트용은 읽기속도 170MB/s, 쓰기속도 90MB/s 로 속도차이가 많이 난다.. 또한 프로젝트용은 고사양앱구동(A2) 옵션을 만족한다.

같은 작업을 해도 읽기 쓰기 속도차이로 차이가 2배 이상 생길 가능성이 많다.

 

마지막으로 최근 구매한 메모리의 사양을 확인해보며 비교를 마무리 하겠다.

비교해보면 프로젝트용으로 구매 했던 메모리와 읽기 속도는 비슷 하며 쓰기속도는 더 빠르다.. UHS-I(U3) 만으로도 속도가 빠름을 확인할수 있으며. 고사양앱구동(A2)를 만족하기 때문에... 한동은... 몇년???? 사용하는데 답답하지 않을것 같다...

Git 이란... 

 

개발을 진행하며 작성하는 소스코드가 업데이트 되는 버전을 기록해두고 관리할 수 있는 소스코드 버전 관리 시스템

 

GitHub 란..

 

Git으로 관리하는 프로젝트를 호스팅하고, 시간과 공간의 제약 없이 협업할 수 있는 온라인 서비스

 

  • Git이 버전 기록을 저장한다면, GitHub에서는 그 기록을 다른 사람과 함께 공유하며 협업할 수 있다.
  • 로컬(Local)에서 작업한 내용을 Git이 저장해 두었다면, 그 기록을 온라인 작업공간인 GitHub에 올려 원격(Remote)으로도 작업할 수 있도록 한다.

Git 설치

https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98

 

Git - Git 설치

이 책은 Git 2.0.0 버전을 기준으로 썼다. 대부분의 명령어는 그 이전 버전에서도 잘 동작하지만, 몇 가지 기능은 아예 없거나 미묘하게 다를 수 있다. Git의 하위 호환성은 정말 훌륭하기 때문에 2.0

git-scm.com

설치가 정상적으로 이루어 졌으면 설치되어 있는 버전 확인방법!

$ git --version

 

GitHub 시작하기

 

회원 가입하기.

https://github.com/

 

https://m.post.naver.com/viewer/postView.nhn?volumeNo=24622891&memberNo=42458017 

 

깃허브(Github) 회원가입하기

[BY 아보느 포스트] 목차 (1~6편이 서로 연관되는 글입니다.)1. (현재글) 깃허브(Github) 회원가입하기 2...

m.post.naver.com

 

로컬의 Git에 GitHub의 계정 정보 등록하기

$ git config --global user.email "mulderkim@gmail.com"
$ git config --global user.name "MulderKim"

등록된 정보 확인하기

$ git config -l

 

내 컴퓨터에 로컬 저장소 만들기

cd aiffel
$ mkdir workplace

Git 으로 버전 관리 시작하기

$ cd workplace

$ git init

init 은 initialization의 약자입니다. 시작한다는 뜻을 갖고 있죠. 이제부터는 Git이 지금 있는 workplace 디렉토리에서 발생하는 모든 변화를 기록해둘 것입니다.

 

workplace 안에 파일 생성

echo "# first-repository" >> README.md

생성된 내용 확인

$ cat README.md

 

지금까지의 변경된 내용 확인

git status

 

Git Repository 구조는...

작업폴더(Working directory) > 인덱스(Staging Area) > 저장소(Head -Repository) 

로 나눌수 있으며... 
Working directory는 위에서 생성한 workplace 이며
Commit 를 실행하기 전에 작업트리와 저장소 사이에 존재하는 가상의 준비역역이 인덱스라고 한다.
저장소에 commit하기 위해서 먼저 추가(Untracked files) 및 변경(Modified files) 하고자 하는 파일을 먼저 인덱스에 기록(Stage)하고 이후 스테이징된 목록만 최종적으로 commit 명령어에 의해 저장소에 공개하게 됩니다.
$ git add README.md

$ git status

 

변경사항 확정

git commit -m "new readme file"

 

로컬저장소와 원격 저장소 연결

$ git remote add origin https://github.com/MulderKim/first-repository.git

 

토큰생성

https://hoohaha.tistory.com/37

 

[GitHub] 깃허브 토큰(Token) 생성하는 법

여러 IDE에서 Token 로그인을 할 수 있기 때문에 토큰을 발급하고자 하였다. 해당 과정을 아래에 적어둔다. (참고) 토큰을 발급한 이후부터는 Git Bash에서 패스워드에 계정 비밀번호 대신 토큰을 입

hoohaha.tistory.com

 

$ git config credential.helper store
$ git push origin main
Username for 'https://github.com': [계정에 사용된 이메일을 입력하세요]
Password for 'https://[위에 입력한 이메일]@github.com': [비밀번호(토큰)를 입력하세요]
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 230 bytes | 230.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/jeina7/first-repository.git
    * [new branch]      master -> master

 

 

add -> commit -> push

 

 

 

Git Desktop 설치

https://sirong.tistory.com/33

 

GitHub 사용법

목차 git! 모든 것을 기록하는 시스템 git이란 우리가 작업하는 파일의 모든 변화를 기록하는 시스템이다. 여기서 모든 것이란 누가 언제 어떤 파일 어떤 부분을 어떻게 했는가 이다. (지운 것도

sirong.tistory.com

 

 

PyCharm 에서 Github 연동하기

 

https://hbase.tistory.com/107

 

[Python] 파이참(PyCharm) 프로젝트 깃허브(Github)에 연동하기

이전 포스트에서 파이썬3와 파이참을 설치해서 파이썬 개발환경을 구축해봤다. (관련자료 : [Python] macOS에 파이썬 개발환경 설치 - 파이썬 설치 및 파이참(PyCharm) 설치) 파이참으로 작성한 소스코

hbase.tistory.com

 

 

VSCode 에서 GitHub 연동하기

 

https://0ver-grow.tistory.com/888

 

[VSCODE] Visual studio code에서 git 허브와 연동하기 / git 허브 커밋하기

깃허브 연동하기 1. 깃허브와 연동하기 VSCODE에서 F1키 누르기 git clone 입력 Git : Clone 메뉴 선택 만약, git clone을 입력했음에도 No matching commands라고 뜬다면? git-scm.com/에서 깃허브를 설치해야..

0ver-grow.tistory.com

 

 

 

 

1. Nano Editer

sudo apt-get install nano

 

 

2. Terminal 다중창, 창분할 앱 Terminator

sudo apt-get install terminator

 

기본적으로 jetbot을 구매 하면 jetson nano 모듈의 포함 유무로 가격차이가 발생한다. 같은제품에서의 추가 옵션은 jetson nano의 유무만인줄 알았다.

 

내가 구매한 jetbot은 기본 jetbot 시리즈 중에서 https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetbot-ai-robot-kit/ Waveshare JetBot AI Kit 이다.

해당 젯본의 경우 Jetbot expansion board 라는 jetson nano 와 연결되며 배터리팩과 OLED 상태 표시창, 전원버튼, 충전케이블 연결 아탑터로 구성되어 있으며 뒷면엔 포터모듈과의 연결포트를 지원해준다. 즉 jetson nano 가 ROS 를  구성하여 신호를 보낸다면 그 신호를 받아서 처리해주는 모듈이 바로 이 expansion board 이다. 여기서 내가 착각한 사실은... 배터리 팩이 그냥 우리가 일반적으로 일상에서 사용하는 AA 건전지 인줄알았던 것이다.. 그래서 젯봇을 조립한뒤 호기롭게..... 다이소에서 3000원에 20개나 들어있는 AA 건전지를 구매하였고.. 베터리 슬롯에 넣는순간 그 허전한 공간이란..... 다시 한번 확인해보니..

사용하는 베터리는 18650 베터리 이며... 작은 글씨로... (Not.... Included).... 젝힐.... ㅡ.ㅡ;;;;

찾아보니 해당 베터리는 여러 용도로 사용되는 충전 베터리 였던... (가깝게는 전자담배에서 소형 플래시에서부터 크게는 병렬, 직렬 연결해서 DIY 배터리 팩을 제작)

 

베터리를 급하게 구매한뒤에... 연결후 충전이 잘 되고 있는지 확인하고 싶었다..

앞에서 언급했듯 expansion board에는 OLED Display 가 연결되어서 젯봇의 상태를 표시해준다.

현재 나의 젯본 OLED Display 에서 표시되어주는 상태값.. 

기본적으로는 디스크 사용량, 메모리 사용량, 네트워크 사용유무와  ip 값이다. 이 정보를 바탕으로 현재 jetbot에 여유 메모리 상태와 젯봇을 외부에서 연결없이 ip를 확인하여 Jupyter Lab에 연결하여 코드를 수정, 실행할 수 있는 것이다.

 

이곳에 배터리 충전양과 전압등을 표시하는 방법을 서치해보니 친절하게 사용법을 남겨주셨다.

https://m.blog.naver.com/zeta0807/221756647728

 

젯봇 OLED에 배터리 충전 및 잔량 표시 성공

글 작성: 2020.01.01 1차 수정: 2020.01.01 Jetbot software에 대한 설명이 아닌 wavesahre Jebot AI ...

blog.naver.com

jetson nano를 사용할때 전원 이슈가 있다는 이야기를 들었으며, 동작도중에 멈추거나 무선 연결로 학습시 전원이 나갈경우 문제가 발생할 수 있기때문에 배터리 상태 표시는 중요하다는 생각이 들었다.

 

위 블로그의 내요을 찾아보면.. Waveshare 사에서 해당 방법을 공유한것인가? 

$ git clone https://github.com/waveshare/jetbot
$ cd jetbot
$ sudo python3 setup.py install

만 해주면 끝.....

 

모든작업이 끝나면 항상 하는것은..... Reboot...... and update...  and upgrade....

결과는 대만족... ip정보는 통합되어 표시되었으며 그로인해 생긴 여유 공간에 배터리 충전량과 현재 전압 정보가 잘 표시 되는것을 확인할 수 있다. 

'AIFFEL > JetBot' 카테고리의 다른 글

유용한 앱  (0) 2021.12.14
JetBot Ubuntu 18.04 한글팩 및 한글 자판 설정  (0) 2021.12.07

Jetson Nano Developer Kit 의 기본 jatpack은 21년 12월 7일 이 글을 남기는날 기준으로 jetpack 4.6 이며 

sd카드 이미지를 다운로드 받아서 sd카드에 복사한뒤 처음 jetson nano를 실행시키면 환경설정 단계를 거쳐서 기본 언어 시간대등을 설정할수 있다.

 

그러나 jetbot SD 이미지를 다운로드 받으면 jetbot 제조사별로 틀리며 같은 제조사의 경우에도 jetbot 종류에 따라서 jetpack 버전에서부터 내부 샘플파일등이 다르게 설정되어 있다.

 

또한 제조사에 따라 기본언어와 기본키보드 자판 설정등이 영어, 중국어 등으로 설정되어있어서 한근자판을 사용하기 위해서는 한글 팩을 설치한뒤에 한글자판 설정작업을 해 주어야 한다.

 

제일 처음 해야할 일은 언어팩 설치 작업이다.

시스템 설정에서 Language Support 항목을 들어가면 처음 항목에 접근했을때 "The Language support is not installed completely" 라는 팝업창이 뜬다. install 버튼을 눌러 마무리 해주자.. 

 

jetson nano 기본 팩을 설치 했을 경우 처음 환경설정에서 입력한 비밀번호를 입력하면 된다.. 대부분 jetbot의 경우 ID, PW 모두 jetbot 이다.. jetbot 모델중 http://www.yahboom.net/home 사에서 나오는 제품의 경우 yahboom 이다. 본인의 초기 비밀번호는 검색해보면 다 나온다. 외우기 힘들다면 설정에서 비밀번호를 변경해주기 바란다. 

하지만 jetbot용 jetpack 에는 Jupyter Lab 이 기본 설정되어 있어서 ip번호를 브라우저에서 입력시 동일한 비번을 입력하기 때문에.. jetbot의 기본 비빌번호를 외우는것을 추천한다.

 

초기 Language support 설치작업이 끝나는데 시간이 살짝 걸리니... 잠시 컵휘 한잔... 여유가 생긴다...

설치가 완료 되었으면 Install / Remove Languages 버튼을 누르면 설치되어있는 언어와 설치가능한 언어 리스트를 확인할수 있다.. K로 시작되는 항목에서 Korean을 찾아서 설치 체크항목을 체크해준뒤 Apply 버튼을 눌러서 한글 언어팩을 설치해준다.

설치가 완료 되었으면... Reboot Gogo....!!!

 

재부팅후

Terminal 창을 띄운뒤 ibus-setup 를 실행시켜 준다.

실행하면 IBus Perferences 창이 뜬다. 상단탭에서 Input Method 항목으로 이동한뒤 우측에 Add 버튼을 누르면

Select an input method 창이 뜨면서 설치가능한 자판리스트가 뜬다. 창 하단에 ... (More) 버튼을 눌러 kor을 검색하면 korean 을 찾을수 있으며 선택하면 아래와 같이 한글 자판 설치가 가능하다.

Add 버튼을 누르면 Ibus Preferences 항목에서 언어가 설치 되어있음을 확인할수 있다. 필요한 언어 자판을 다 설치 햇으면 close 버튼을 눌러 해당 페이지를 닫아준다.

 

마지막으로 화면 우측 상단을 보면 

현재 선택된 키보드 자판 언어를 확인할 수 있는 메뉴를 클릭한뒤 Text Entry Settings 버튼을 눌러서 최종적으로 자판 추가작업을 해줍니다.

Text Entry 창 우측 하단에 + 버튼을 누른뒤 설치하고싶은 자판을 검색후 Add 버튼을 눌러 추가 해주면 된다.

우리가 설치할 자판은 korea (Hangul)(IBus) 이니 해당 자판을 추가해주면 된다. 

 

자판 추가작업이 끝났으면 다시 키보드 셋팅 버튼을 눌러서 세부 설정을 해주기 바란다.

설정이 끝났으면 Apply 버튼을 눌러 적용해준뒤 Ok 버튼을 눌러서 마무리 한다.

'AIFFEL > JetBot' 카테고리의 다른 글

유용한 앱  (0) 2021.12.14
젯봇 OLED 에 배터리 충전 및 잔량 표시  (0) 2021.12.07

Jetson Nano 를 이용한 Object Detection으로 당연히 YOLO를 떠올렸으며 구글링을 통해서 먼저 이길을 가시면서 친절하게 방법과 입력코드를 남겨주신대로 진행을 해봤으나 YOLO신의 버림을 받아서인지... 샘플 이미지를 통한 결과는 정상적으로 출력이 되지만 pi camera를 이용한 실시간 Detection 은 실패를 하였다. (이상하게 카메라 영상을 보여주는 창이 온통 초록색으로 꽉찬 상황 ㅠ.ㅠ)

 

그래서 다른 방법이 없는지 찾게 되었고 YOLO v5 를 시도했던 시간의 거의 1/3 정도만으로 생각보다 훌륭한 결과를 얻을수 있었던 내용을 공유해본다. 

 

해당내용의 출처는  NVIDIA Developer 채널에서 아래 주소의 Youtube 영상을 시작으로 얻을수 있었으며 

https://youtu.be/bcM5AQSAzUY

소개 페이지는 

https://developer.nvidia.com/blog/realtime-object-detection-in-10-lines-of-python-on-jetson-nano/

 

Real-Time Object Detection in 10 Lines of Python on Jetson Nano | NVIDIA Developer Blog

To help you get up-and-running with deep learning and inference on NVIDIA’s Jetson platform, today we are releasing a new video series named Hello AI World to help you get started.

developer.nvidia.com

github 자료는 아래와 같다.

 

https://github.com/dusty-nv/jetson-inference

 

GitHub - dusty-nv/jetson-inference: Hello AI World guide to deploying deep-learning inference networks and deep vision primitive

Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson. - GitHub - dusty-nv/jetson-inference: Hello AI World guide to deployin...

github.com

Dustin Franklin 님(?)의 소개대로 진행을 한단계씩 밟아 나가다 보니.. 어느새 카메라를 통해서 실시간 Detection 되는 결과를 볼수 있었으며... jetson nano를 이용한 뭔가 첫 결과물(?)을 확인할수 있었던 내용이었다. 

 

시작은 설치되어 있는 패키지들의 새로운 버전이 있는지 확인 부터... 

$ sudo apt-get update -y

설치된 패키지들의 최신버전에 따라 업그레이드두 GoGo...

$ sudo apt-get upgrade -y

다음단계는 필요한 패키지 설치~

$ sudo apt-get install git make libpython3-dev python3-numpy -y

git clone 으로 간단히 가져오기~~

$ git clone --recursive https://github.com/dusty-nv/jetson-inference

 

$ cd jetson-inference/

$ mkdir build

$ cd build

$ cmake ../

까지 진행하면 모델을 다운로드 받을수 있는 창이 뜬다...

짜란~~~ Hello AI World   - Model Downloader

 

여기서 다운로드 받을수 있는 모델은 아래와 같다. (2021년 11월 19일 기준)

  • Image Recognition - all models
    • AlexNet
    • GoogleNet
    • GoogleNet -12
    • ResNet-18
    • ResNet-50
    • ResNet-101
    • ResNet-152
    • VGG-16
    • VGG-19
    • Inception-v4
  • Object Detection - all models
    • SDD-Mobilenet-v1
    • SDD-Mobilenet-v2
    • SDD-Mobilenet-v3
    • PedNet
    • Multipad
    • FaceNet
    • DetectNet-COCO-DOG
    • DetectNet-COCO-Bottle
    • DetectNet-COCO-chair
    • DetectNet-COCO-airPlane
  • Mono Depth - all models
    • ModoDepth-FCN-Mobilenet
    • ModoDepth-FCN-ResNet18
    • ModoDepth-FCN-ResNet50
  •   Pose Estimation - all models
    • Pose-ResNet18-Body
    • Pose-ResNet18-Hand
    • Pose-DenseNet121-Body
  • Semantic Segmentation - all
    •  FCN-ResNet18-Cityscapes-512x256
    • FCN-ResNet18-Cityscapes-1024x512
    • FCN-ResNet18-Cityscapes-2048x1024
    • FCN-ResNet18-DeepScence-576x320
    • FCN-ResNet18-DeepScence-864x480
    • FCN-ResNet18-MHP- 512x320
    • FCN-ResNet18-MHP-640x360
    • FCN-ResNet18-Pascal-VOC-320x320
    • FCN-ResNet18-Pascal-VOC-512x320
    • FCN-ResNet18-SUN-RGBD-512x480
    • ResNet18-SUN-RGBD-640x512
  • Semantic Segmentation - legacy
    • FCN-Alexnet-Cityscapes-SD
    • FCN-Alexnet-Cityscapes-HD
    • FCN-Alexnet-Aerial-FPV
    • FCN-Alexnet-Pascal-VOC
    • FCN-Alexnet-Synthia-CVPR
    • FCN-Alexnet-Synthia-Summer-SD
    • FCN-Alexnet-Synthia-Summer-HD
  • Image Processing - all models
    • Deep-Homography-COCO
    • SUper-Resolution-BSD500

  이중에서 필요한 모델을 선택해서 <OK> 또는 Enter 키를 눌러주면... 막 신나게.. 설치해준다..

설치가 끝나면 바로 PyTorch Installer 화면이 뜨는데... 영상에서는 이부분은 Skip 처리 해줬다.. PyTorch 설치가 필요하신분은 이곳에서 설치도 선택하면 설치해준다...

 

저의 경우는 어차피 처음 테스트 시도 였으며 언젠가 쓰지 않겠어? 안쓰면 말구... jetson nano 에서는 PyTorch를 마니마니 쓴데... 를 들어와서... 그냥 설치했다...

 

그 다음단계는 make 설치... 

make 에 대해서 찾아보니 프로그램 그룹을 유지하는데 필요한 유틸리티로 make유틸리티의 목적은 프로그램 그룹 중에서 어느 부분이 새롭게 컴파일되어야 하는지를 자동적으로 판단해서 필요한 커맨드(gcc따위)를 이용해서 그들을 재컴파일 시킨다고 한다..

 

여튼 필요한가보다.. 설치 GoGo

$ make

시간이 좀 걸린다... 설치 걸어놓구 다른 업무 보기 딱 좋다...

$ sudo make install

하면 이제 거의 끝이 보이는....

공유 라이브러리 캐시를 다시 설정하고..

$ sudo ldconfig

aarch64/bin 으로 이동해서 확인해보면...

$ cd aarch64/bin
$ ls

설치가 되어있는 내용을 확인할 수 있다.

이제 테스트 이미지를 이용해서 테스트 해보자..

$ ./detectnet-console.py images/peds_0.jpg output_0.jpg

결과값을 확인할수 있었다..

pi-camera를 이용해서 실시간 디텍션이 가능하다.

연결한  카메라가 잘 작동하는지 먼제 체크해보자..

$ gst-launch-1.0 nvarguscamerasrc ! nvoverlaysink

 

마지막으로.. text editer 를 열어서 my-detection.py 파일명을 home 에 save as 한뒤.... 다음 코드를 입력 저장한다..

import jetson.inference
import jetson.utils

net = jetson.inference.detectNet("ssd-mobilenet-v2", threshold=0.5)
camera = jetson.utils.videoSource("csi://0")      # '/dev/video0' for V4L2
display = jetson.utils.videoOutput("display://0") # 'my_video.mp4' for file

while display.IsStreaming():
	img = camera.Capture()
	detections = net.Detect(img)
	display.Render(img)
	display.SetStatus("Object Detection | Network {:.0f} FPS".format(net.GetNetworkFPS()))

 

저장했으면... 마지막 리얼타임 디텍팅이 되는지 테스트 해보자...

 

만약을 위해.. 파일도 공유 해본다..

my-detection.py.zip
0.00MB

위 코드의 경우... CSI 카메라를 이용할때적용되는 코드이다.. USB카메라의 경우(V4L2) 코드를 수정해주자...

 

우선 V4L2 드라이버를 설치해주고....

$ sudo apt-get install v4l-utils

연결된 USB 카메라의 디바이스 번호를 확인하는 방법은....

$ v4l2-ctl --list-devices

하여 디바이스 번호를 확인하자...

 

아래 코드는 같이 스터디를 진행한 오휴민님 께서 수정 정리해주신 코드다.. 깔끔하다...

import jetson.inference
import jetson.utils

net = jetson.inference.detectNet("ssd-mobilenet-v2", threshold=0.5)

camera = jetson.utils.gstCamera(1280, 720, "/dev/video0")	# USB camera ONLY
# camera = jetson.utils.gstCamera(1280, 720, "/dev/video1")	# CSI camera + USB camera
#camera = jetson.utils.videoSource("csi://0")			# CSI camera ONLY
display = jetson.utils.glDisplay()				# USB camera ONLY
#display = jetson.utils.videoOutput("display://0")		# CSI camera ONLY

### USB camera ###
while display.IsOpen():
	img, width, height = camera.CaptureRGBA()
	detections = net.Detect(img, width, height)
	display.RenderOnce(img, width, height)
	display.SetTitle("Object Detection | Network {:.0f} FPS".format(net.GetNetworkFPS()))

### CSI camera ###
#while display.IsStreaming():
#	img = camera.Capture()
#	detections = net.Detect(img)
#	display.Render(img)
#	display.SetStatus("Object Detection | Network {:.0f} FPS".format(net.GetNetworkFPS()))

my-detection.zip
0.00MB

마지막으로....

$ cd ~

로 이동한뒤... 

$ python3 my-detection.py

하면 실시간 디텍딩 퇴는것을 확인할 수 있다.

 

 

jetson nano는 Nvidia Jetson 디바이스 중 가장 작은 크기의 모듈로 lite 버전에 해당하는 2G 버전과 기본 4G 버전 두제품으로 구성되어 있다.

 

4G 모듈의 기준으로 제품 스펙은 아래와 같다.

 

GPU 128-core Maxwell
CPU Quad-core ARM® Cortex-A57 @ 1.43 GHz
Memory 4 GB 64-bit LPDDR4 25.6 GB/s
Storage 16GB eMMC
Video decode 4K @ 30 | 4x 1080p @ 30 | 9x 720p @ 30 (H.264/H.265)
Video encode 4K @ 60 | 2x 4K @ 30 | 8x 1080p @ 30 | 18x 720p @ 30| (H.264/H.265)
Deployment Module (SO-DIMM), 260 pin connectort
Camera 1x MIPI CSI-2 DPHY lanes
Connectivity Gigabit Ethernet, M.2 Key E, PCIe x4
Display MIPI-DSI x2, HDMI, DP, eDP
USB 1x USB 3.0, 3 x USB 2.0
Others GPIO, 4 x I2C, 2 x I2S, 2 x SPI, 2 x UART, 1 x SDMMC
Mechanical 69.5mm x 45mm

처음 젯슨나노를 사용하기 위해서는 JetPack과 ubuntu OS가  포함되어 있는 SD카드 이미지를 다운로드 받아서 설치해야 한다.

 

사용용도 방법에 따라 SD카드 이미지는 여러종류가 있으므로 Jetson nano를 이용할 방법에 맞는 이미지를 찾아서 다운로드하기 바란다.

 

기본적인 방법은 최신버전을 제공하는 Jetson Download Center에서 Jetson Nano Developer Kit SD Card Image를 다운로드 하는게 좋다.

 

https://developer.nvidia.com/embedded/downloads

 

Jetson Download Center

Get downloadable documentation, software, and other resources for the NVIDIA Jetson ecosystem.

developer.nvidia.com

 

Jetbot 을 이용하기 위해서는 아래 링크를 참조하기 바란다.

 

https://www.nvidia.com/ko-kr/autonomous-machines/embedded-systems/jetbot-ai-robot-kit/

 

NVIDIA JetBot 파트너의 AI Robot 키트

오픈 소스 AI 로봇 플랫폼은 창의적이며 재미있는 스마트 AI 애플리케이션을 제작하는 데 필요한 모든 것을 제공합니다.

www.nvidia.com

https://jetbot.org/master/index.html

 

Home - JetBot

JetBot JetBot is an open-source robot based on NVIDIA Jetson Nano. You'll like it because... It's Affordable JetBot costs less than $250 in parts, including Jetson Nano. The DIY kit includes a bill of materials which you must purchase and a 3D printed chas

jetbot.org

 

대표적으로 많이 사용중인 Jetbot 모델은 WaveShare JetBot Kit 이며

https://www.waveshare.com/wiki/JetBot_AI_Kit

 

JetBot AI Kit - Waveshare Wiki

Introduction This is an AI Robot kit based on Jetson Nano Developer Kit. Supports facial recognition, object tracking, auto line following or collision avoidance and so on. User Guides 1. Install Image 【Note】 The software part of this guide mostly base

www.waveshare.com

이곳에서 SD 카드 이미지를 다운받을수 있다.

 

Jetson Nano 시작준비를 하면서 느낀점은 기본적으로 컴퓨터의 메인보드에 해당하는 모듈에서 CPU와 GPU, 메모리 등을 업그레이드 하는 방법은 상위 모델인 TX2 모듈 이상을 이용하는 방법이다. 사용자 측에서 성능을 올릴수 있는 방법은 SSD에 해당하는 SD카드의 읽기 쓰기 속도를 확인하고 빠른 제품을 선택하는것이 유리하다. 제품을 검색할때 속도타입에서 UHS-I(U3), UHS-II(U3) 옵션을 선택한뒤 나오는 제품들을 살펴보면 읽기 쓰기 속도가 확인가능하며 고사양앱구동(A1), 고사양앱구동(A2) 옵션이 포함되어있는지를 꼭 확인하는것이 좋다.

+ Recent posts