전체 글 64

[AWS] IAM

AWS Identity and Access Management, 줄여서 AWS IAM은 사용자와 그룹의 권한을 관리하는 매우 중요한 서비스입니다. 이번 글에서는 AWS IAM을 이용하여 접근 통제의 기본 개념을 정리하였습니다. AWS IAM 서비스 : AWS에서 권한이란 사용자가 어떤 서비스에서 어떤 리소스를 상대로 어떤 작업을 수행할 수 있는지 없는지를 정의합니다. 200종류가 넘는 방대한 서비스를 제공하는 AWS에서 각 서비스의 권한을 설정하는 것은 필수입니다. 사용자와 그룹 AWS는 리눅스 정책과 마찬가지로 사용자와 그룹에 기반하여 권한을 부여합니다. 예를들어 회사 내에 서비스를 관리하는 도현,필무,승빈,태중,병효,소담 여섯명이 있다고 가정하겠습니다. 이때 도현,필무,승빈은 함께 일하는 개발자들이고..

기본기/AWS 2023.12.04

[AWS] Region과 Availability Zone

Regions 이란? : AWS에서 제공하는 클라우드 컴퓨팅 리소스는 미국에서 호스팅하여 전세계로 제공하는 방식이 아닌 전세계 각국에서 직접 호스팅됩니다. 이때 이 호스팅되는 위치를 지리적 관점으로 구분한 것을 리전이라고 합니다. 예를들어, 한국 서울에서 호스팅되는 영역은 서울리전, 일본 도쿄에서 호스팅되는 영역은 도쿄리전 이라고 말합니다. 그래서 서울 리전에서 서비스를 이용하다가 도쿄 리전으로 서비스를 이전하면 서비스를 처음부터 다시 꾸려야 합니다. Regions 선택방법? : AWS 리전을 선택할 때 고려해야 할 사항은 다음과 같습니다. 법률 준수: 예를들어 어떤 정부는 어플리케이션을 배포할 때 해당 국가 내에 데이터를 보관해야만 하는 법률이 존재합니다. 이 경우에는 어플리케이션을 해당 국가의 리전으..

기본기/AWS 2023.12.04

Nova-Vision은 어떻게 개발했을까?: 3D Depth camera 개발

이번 글에서는 "가축 체중측정 시스템 시제품" 제작과정에서 마주했던 문제들과 해결방법에 대해 정리하였습니다.(전북대학교 시제품 제작 지원사업, 2023.05~2023.09) 다음글: Nova-Vision은 어떻게 개발했을까?: AI 가축 체중측정 알고리즘Github: https://github.com/dohyeonYoon/Nova-Vision 프로젝트 개요2023년 1월 아래 그림 1과 같이 휴대형(3D카메라 + Edge Computer)으로 동작하는 Nova-Vision MVP 제품을 제작하였습니다. 기존 시제품의 체중측정 방식은 3D 깊이 카메라에서 촬영한 이미지를 Edge Device에 저장하고 깊이 데이터를 계산한 뒤, 서버에 전송하여 체중을 추론하는 방식이었습니다. 그러나 제품을 이와같이 구성할..

[모니터링 시스템 구축] Video 스트리밍 with Ant Media Server

오늘은 RTMP 프로토콜을 HLS로 변환하여 영상을 실시간으로 웹에 스트리밍 할 수 있는 방법을 정리해보려 합니다.저는 ant media라는 saas 프로그램을 사용하여 매우 간단하게 구현해보았습니다. Ant Media Server는 RTMP나 RTSP 등 다양한 프로토콜을 HLS로 변환하고 웹에 스트리밍해주는걸 GUI로 편하게 구현해준 saas 스트리밍 엔진 소프트웨어입니다. 저는 해당 소프트웨어를 이용하여 video stream을 받고, 중개하여 최종적으로 외부에서 webcam 프레임에 접근하는 방법을 소개합니다.  Ant Media Server는 enterprise version과 community 버전이 존재합니다. 저는 무료로 공개된 community version을 이용해 stream 중개서버..

[mmdetection] 모델 학습과정에서 wanDB 연동방법

이번에 mmdetection에서 제공하는 Instance Segmentation Network들의 성능을 비교해보려 합니다. 위와같이 mmdetection은 2022년 12월 03일 기준 13개의 Instance Segmentation Network를 툴박스에서 제공합니다. 거두절미하고 학습 시각화를 위한 wegiht&bias를 mmdetection에 연동하는 과정을 설명하겠습니다. 2022년 12월 현재 mmdetection github의 master branch가 2.26.0버전을 제공하므로 이를 기준으로 설명하겠습니다. 1. Prerequirement 설치 # pytorch 설치 for cuda 11.3 conda install pytorch==1.11.0 torchvision==0.12.0 tor..

산란계 달걀 tracking 코드 cpu로 실행방법

detect_track_trails.py 코드 동작환경 python: 3.7.13 torch: 1.8.1+cpu torchvision: 0.9.1+cpu 0. 가상환경 생성 conda create -n egg python=3.7.13 1. torch, torchvision 설치 # CPU only pip install torch==1.8.1+cpu torchvision==0.9.1+cpu torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html 2. detect_track_trails.py 코드 수정 - 149 line의 use_cuda=True 에서 False로 변경 - 159 line의 model = Darknet(cfg, img..

카테고리 없음 2022.09.22

[mmdetection] roi_head 변경방법

기존 mask rcnn model에서 pointRend model로 mask_head를 변경하려고 하였는데 다음과 같은 오류가 발생하였다. AssertionError: The `num_classes` (80) in MaskPointHead of MMDataParallel does not matches the length of `CLASSES` 1) in VOCDataset 해당 오류는 2가지의 이유로 발생할 수 있는데 먼저, 해결방법 1 mmdetection-master 디렉토리에는 python 파일이 일부만 존재하는데, 실제로 프로그램이 실행될 때 환경에서 소스 파일을 직접 수정하기 때문에 환경의 소스 파일은 계속 실행됩니다. 내 conda 환경의 이름이 conda_env_name이라고 가정하고 다음 ..

[ubuntu18.04] pyinstaller 사용법 및 문제해결

오늘은 pyinstaller를 사용해 여러개의 모듈이 묶인 python code를 deploy하는 방법을 정리하려 한다. 리눅스는 윈도우10과 달리 file_name.spec 라는 파일이 생성되지 않는다. 따라서 하나하나 라이브러리 경로를 입력해줄 필요가 없어서 윈도우에 비해 간편하다. 0. python code가 동작하는 가상환경 활성화 conda activate 가상환경이름 1. pyinstaller 설치 pip install pyinstaller 2. pyinstaller로 실행파일로 변환 pyinstaller --distpath /scratch/dohyeon main.py --distpath : 실행파일이 저장될 디렉토리 주소 3. 문제해결 에러 1 - Assertionerror: /scratch..

기본기/OS 2022.08.29

[Depth camera] - Stereolabs ZED2i(Neural Depth mode 세팅방법)

연구실에서 ZED camera로 neural depth mode setting을 하던 중 발생했던 에러를 정리하려한다. 진행방법은 다음과 같다. os: window10 gpu: RTX 2060 1. gpu dependency에 맞는 cuda version 설치 나의 경우 cuda 11.7을 설치하였다. 2. cuda version에 맞는 cudnn을 설치하고, 설치가 완료되면 cudnn-11.6-windows10-x64-v8.3.2.어쩌고.zip 이라는 파일이 다운로드 되고 압축을 풀면 bin, include, lib 라는 폴더가 있을 것 이다. 다음과 같이 종류별로 CUDA Toolkit 디렉토리에 복사한다. cuda\bin에 있는 *.dll 파일을 아래 경로로 복사 (버전은 알아서 맞게 고쳐써라 11..

[mmdetection] custom training 방법 (개선)

1. config file들 새로 만들기 config의 대분류는 datasets, model, scedule, runtime 이다. 이번에 만들 config file들도 이렇게 구성된다. 1-1 mmdetection/configs 폴더 안에 새로운 폴더 생성 ex) smartfarm 1-2 새로만든 폴더안에 dataset.py 생성 해당 파일은 config/_base_/coco_instance.py 를 복붙하고 주석처리한 부분만 수정한다. # dataset settings dataset_type = 'CocoDataset' data_root = '/scratch/dohyeon/mmdetection/coco_output/' #dataset이 저장된 root위치 classes = ('chicken') # _..