본문 바로가기

전체 글30

펌웨어 자동 업데이트 시스템 구축 with python Jetson nano를 활용해 솔루션을 만들고 난 뒤 코드가 업데이트 됐을때 펌웨어를 자동으로 업데이트 할 수 있도록 업데이트 시스템을 구축했다. 시나리오는 아래와같다. 1. 서버에 버전을 관리하는 파일을 활용해 버전을 리스트로 반환하는 API를 만든다. 2. 서버에 펌웨어를 구성하는 파일을 압축하여 버전명으로 된 폴더에 보관한다. 3. 클라이언트에서 버전 리스트 API를 활용해 현재 버전과 최신 버전을 비교한다. 4. 최신 버전과 현재 버전이 다르다면 자동 업데이트 코드를 수행한다. 자동 업데이트 코드 1. 실행시 버전 명을 변수로 사용해 버전에 맞는 압축 파일을 다운받는다. # Downloading the file by sending the request to the URL req = requests.. 2022. 8. 3.
Jetson nano 에서 내 펌웨어 업데이트 시스템 구축 업데이트 과정 Jetson nano에서 매일 일정 시간마다 최신 업데이트 버전을 확인하고 현재 버전과 다르다면 새로운 버전 데이터를 다운 받는다. 다운 후 사용 중인 폴더로 옮기고 재부팅한다. 필요한 API 및 파일 서버 : 버전 데이터(코드, 파일)를 보관하는 서버 / 서버에서는 버전 명으로 된 폴더안에 데이터를 압축하여 보관한다. 최신 버전을 확인하는 api를 만든다. 클라이언트 : 파이썬 코드를 사용해 최신 버전을 확인하는 api를 통해 최신버전 값을 변수에 담고 해당 변수를 활용해 wget명령어로 최신 데이터 압축파일을 다운받는다. 압축파일을 압축해제 한 뒤 해당 파일들을 올바른 위치로 옮긴다. jetson nano를 재부팅하여 새로운 코드로 실행한다. -> jetson nano에서는 재부팅 시 .. 2022. 8. 2.
오라클 클라우드 외부 접속 불가능한 경우 오라클 클라우드는 인스턴스 생성 후 ping이 정상적으로 도달하지 못합니다. 아래와 같은 방법으로 방화벽에 포트를 설정하고 설정한 포트 외 나머지 포트를 막을 수 있습니다. sudo apt install firewalld sudo firewall-cmd --permanent --zone=public --add-port=8888/tcp sudo firewall-cmd --reload firewall-cmd --llst-all 방화벽 중지 systemctl stop firewalld 방화벽 자동 실행 해제 systemctl disable firewalld 2022. 8. 2.
Jetson nano 를 활용하여 영상 처리 제품 준비 opencv를 사용해 영상에서 데이터를 추출하고 딥러닝 모델을 적용해 나이 성별을 분류하는 제품을 개발중이다. 현재 모델은 완성이 됐고 inference 후 데이터를 추출해 보이는 API도 완성이 됐다. 남은 작업은 카메라 모듈을 테스트하고 적당한 가격에 좋은 성능을 가진 카메라를 선정하고 하드웨어를 담을 수 있는 케이싱 작업. 케이스를 커스터마이징 하는 업체를 알아보거나 3D 프린트를 구매하여 도면을 맞겨야한다. 이후 Jetson nano와 카메라, 라우터까지 케이싱이 완료되면 정식 출시가 가능할 것으로 보인다. 한국에서 모듈이나 Jetson series와 같은 SBC를 구하기 어려운 실정이다. 참고할만한 사이트를 남긴다. https://www.icbanq.com/?gclid=Cj0KCQjw54iXBh.. 2022. 7. 28.
pm2를 사용하여 python 프로세스 관리하기 외부적으로도 사용할 수 있는 어노테이션 툴을 만들었다. 지금까진 Lit 이라는 프레임워크를 사용해 프론트 작업을 했었지만 최근 들어 Svelte에 흥미가 생겨 Svelte를 활용해서 작업을 진행했다. Svelte에 대한 포스팅은 추후에 진행하도록 하자. 구조는 간단하다 API 서버에서 전체 이미지에 대한 특정한 특징을 가진 부분을 크롭하여 분리 저장하고 웹 서버에 해당 이미지를 전송한다. 이미지 전송 API , 전송한 이미지로부터 데이터를 받아 저장해 JSON 파일로 보관하는 API 두 가지가 필요했다. 위 2가지 동작과 특징을 가진 부분을 크롭해 저장하는 기능까지 구현된 코드를 클라우드 서버에 옮기게됐다. 클라우드 서버는 Ubuntu를 사용했고 pm2를 이용해 프로세스를 효율적으로 관리하기로 했다. h.. 2022. 7. 27.
Jetson nano SBC를 사용해 엣지 컴퓨팅으로 CV를 하기 위해 Jetson nano를 구매하였다. 몇주간 Jetson nano를 사용해 Streaming, Openvino, MediaPipe를 사용해 비디오에 model Inference를 진행하고 있다. 추후에 Jetson nano를 사용한 경험, 복구한 경험, 설치한 경험을 나열하려 한다. 2022. 6. 28.