전체 글 16

모니터없이 라즈베리파이 와이파이 연결 및 ip확인하여 VNC 원격 제어하기 / VNC, SSH, PuTTY

PC로 라즈베리파이를 편하게 이용하려면 VNC를 활용하는 것이 좋습니다. 그러나 랩탑만 있다거나 하여 라즈베리파이의 초기 설정을 할 여분의 모니터가 없으면 난감합니다. 이에 모니터 없이 라즈베리파이의 무선 연결 설정 및 IP확인을 하여 VNC 뷰어로 접속하는 방법을 소개합니다. 우선 라즈베리파이 부팅디스크 SD카드가 필요합니다. PC에 SD카드를 넣으면 OS 구동용 파일들이 보입니다. 2개의 새 파일을 만들 텐데요, 확장자가 없는 라는 파일을 만듭니다. 확장자를 없앨 것이기에 텍스트, 이미지 아무거나 새 파일 만들기 하시면 됩니다. 그다음에는 라는 파일을 만듭니다. 열면 텍스트 기반 편집기로 보통 열립니다. 파일 내부 내용은 다음과 같이 작성합니다. country=국가(US,KR,...) ctrl_int..

Embedded 2024.01.09

라이브러리 함수의 내부 정의 코드 확인하기

라이브러리를 가져다 쓰면서 함수 내부는 보통 에러가 발생했을 때, 함수의 어느 부분에서 에러가 발생했다는 메시지를 통해 함수 내부 코드를 확인하면서 종종 들여다보게 됩니다. 어떻게 동작하는 건지 에러 코드가 가져다 주기 전에 먼저 공부해보고 싶다면 inspect 모듈로 확인이 가능합니다. import tensorflow as tf import inspect print(inspect.getsource(tf.keras.preprocessing.image.img_to_array)) 지금 작성하던 코드에서 아무 함수나 긁어왔습니다. 불러온 img 파일을 편집할 수 있게 array로 바꿔주는 케라스 함수네요. 실행하면 상태창에 바로 출력이 됩니다. @keras_export( "keras.utils.img_to_a..

Language/Python 2023.10.05

TabError: inconsistent use of tabs and spaces in indentation 에러

TabError: inconsistent use of tabs and spaces in indentation 에러가 나왔을 때 보통 불필요한 탭이나 스페이스 공백이 입력됐는지 확인해 보게 됩니다. 그러나 아무리 보아도 여백은 보이지 않는데, 해당 에러가 계속 발생하네요. 문제는 인터프리터 언어인 파이썬의 들여쓰기 문법입니다. 인터프리터 언어는 들여쓰기의 위치로 해당 구문의 문법 위치를 정하는데, 각 들여 쓰기가 탭과 스페이스가 혼용되어있으면 이를 하나의 들여 쓰기로 인식하지 못합니다. 따라서 모든 행의 들여쓰기 방식을 탭 혹은 스페이스 둘 중 하나로만 정해줘야 들여 쓰기를 온전히 인식합니다. 보통 자신이 사용하는 스타일만 고수하기 마련인데, 다른 사람이 작성한 코드를 수정하다 보면 각자의 스타일이 섞여서..

Language/Python 2023.08.28

ERROR: nvcc not found 에러 해결 방법

jetson의 linux환경에서 bash install을 수행할 때 다음과 같은 에러가 발생할 수 있다. ERROR: nvcc not found 이는 CUDA환경이 필요한 패키지를 설치할 때 CUDA경로가 확인이 안되어 나타나는 것으로 export로 경로를 잡아주면 된다. export PATH=/usr/local/cuda-10/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export PATH=/usr/local/cuda/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_..

Embedded 2023.08.25

젯슨 나노 Yolo configuration customizing으로 fps 개선

젯슨 나노에서 yolo를 구동하면 성능이 썩 좋지는 않습니다. 저는 yolo4 기준으로 1fps 수준이 나와 실시간 추론을 하기엔 처리속도가 턱없이 부족했습니다. 이때 너무 높은 정확도가 필요하지 않다면 yolo configuration을 통해서 처리속도를 향상시킬 수 있습니다. darknet 설치버전 yolo를 기준으로 합니다. 우선 darknet/cfg폴더에서 yolov4.cfg파일을 편집기로 엽니다. 해당 파일에서 yolo 추론 모델의 파라미터 세팅이 가능합니다. batch : 1번에 처리되는 데이터 수 subdivisions : batch를 나눠서 처리하기 위한 값. 값이 커질수록 batch를 더 많이 나눠서 하므로 메모리가 작을수록 유리하나 속도는 떨어짐. width : 입력 이미지 가로 hei..

AI/CNN 2023.08.23

젯슨 나노 object detection을 위한 Yolo 구동 환경 구축

젯슨 나노에 yolo를 설치하여 object detection을 구현해보겠습니다. 우선 cuda 설치 경로 및 버전을 확인합니다. ls /usr/local/ 제 기준 cuda10 버전으로 폴더명은 cuda-10으로 확인됩니다. 해당 경로를 export 해줍니다. export PATH=/usr/local/cuda-10/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export PATH=/usr/local/cuda/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+..

AI/CNN 2023.08.10

compilation : native vs cross

compilation은 native와 cross로 나뉩니다. native compilation는 컴파일 하는 환경과 실행하는 환경이 동일한 경우를 의미합니다. cross compilation은 반대로 크로스 컴파일은 컴파일 하는 환경과 실행하는 환경이 다른 경우입니다. 이때 환경의 기준은 매우 다양합니다. OS, CPU 사양 및 제조사 등의 차이를 기준으로 합니다. 예를 들어 윈도우PC에서 안드로이드 용 실행 파일을 만들 때, 맥PC에서 안드로이드 용 실행 파일을 만들 때, 윈도우PC에서 IOS용 실행 파일을 만들 때, 맥PC에서 IOS용 실행 파일을 만들 때 모두 다른 컴파일 환경을 통해야 합니다. 이를 크로스 컴파일이라고 합니다.

CS&OS 2023.08.09

젯슨 나노 jetson nano 도커 및 주피터랩으로 제어 및 카메라 테스트

Nvidia DLI 과정을 참고하여 도커와 주피터랩을 이용하여 젯슨 나노에서 카메라 예제를 실행해보겠습니다. 무선 인터넷을 사용하지 않아도 메인 PC에서 제어가 가능한 SSH를 활용한 데이터 통신 방법을 함께 소개하겠습니다. 제어할 메인 PC와 젯슨 나노를 USB 케이블로 연결합니다. 젯슨 나노의 마이크로 5핀과 연결하면 되는데, 전원 공급을 위해서가 아니라 유선 데이터 통신을 하기 위함입니다. 따라서 일반 충전케이블이 아닌, 데이터 통신이 가능한 USB 케이블을 사용해야 합니다. 카메라는 USB웹캠 혹은 CSI카메라를 연결합니다. CSI카메라는 라즈베리파이에 사용하는 picamera와 같은 연결방식을 사용하는 카메라를 말합니다. 메인 PC의 프롬프트 창을 열어 다음 SSH 통신 커맨드를 입력합니다. s..

Embedded 2023.07.22

젯슨 나노 jetson nano 한글 입력 설정

젯슨 나노는 한글 인식은 하지만, 웹 페이지에서 검색등을 위해 한글 입력이 필요하긴 합니다. 한글 입력기 설정을 해보겠습니다. system settings의 language support를 실행해보면 다음과 같은 메시지가 나옵니다. install을 클릭합니다. 비밀번호 입력해주고요. 이후 10분 내외의 시간동안 언어팩을 설치합니다. 터미널에서 ibus-setup을 실행합니다. ibus-preferences - input method 에서 add를 하여 언어 목록 중 korean을 선택합니다. 혹시 목록에 korean이 안나타난다면, 재부팅 해보세요. 우측 상단의 En을 누르고 Text Entry Settings를 선택합니다. Text Entry에서 +버튼을 눌러 Korean (Hangul) (IBus)를..

Embedded 2023.07.21

젯슨 나노 Jetson nano Vino VNC 원격 데스크톱 제어 설정

젯슨 나노를 사용하는 경우는 보통 메인 PC에서 작업 후 젯슨 나노를 엣지 디바이스로 활용하여 작업을 하는 게 보통입니다. 아무리 OS 환경이 잘 구축돼 있어도, 엣지 디바이스는 웬만하면 원격 제어하는 게 여러모로 편리하죠. 메인 PC에서 VNC를 이용해 젯슨 나노 원격 제어 설정을 해보겠습니다. 원격 제어를 하기 이전에는 우선은 젯슨 나노에선 별도의 모니터, 키보드, 마우스를 이용한 조작이 필요합니다. 우선 터미널을 실행하고 XML파일 편집을 열어서 추가 명령어를 삽입하겠습니다. $ sudo gedit /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml 파일을 열기 전 sudo 관리자 접근에 대한 비밀번호 입력이 나올 수 있으니 당황하지 마세요. 아래 구문..

Embedded 2023.07.20