분류 전체보기 86

[AWS] ELB 및 ASG

이번 글에서는 Amazon ELB(Elastic Load Balancing)와 ASG(Auto Scaling Group)에 대한 내용을 정리하였습니다. AWS ELB란? : AWS ELB(Elastic Load Balancing)이란 서버 혹은 서버셋으로 트래픽을 백엔드나 다운스트림 EC2 인스턴스 서버로 전달하는 기능입니다. 예를들어 3명의 유저가 Elastic Load Balancer에 연결되면 각각의 유저는 백엔드 서버에 위치한 임의의 EC2 인스턴스에 연결될 것입니다. 이때 Load Balancer는 로드가 집중되지 않도록 각각 다른 EC2 인스턴스에 분산시켜 연결해주는 역할을 합니다. Load Balancer가 필요한 이유를 한마디로 정리하면 "부하를 다수의 다운스트림 인스턴스로 분산하기 위해"..

기본기/AWS 2023.12.19

[AWS] EC2

이번 글에서는 AWS EC2의 전체적인 개념과 사용법을 정리하였습니다. AWS EC2란? : AWS EC2란 Amazon Elastic Compute Cloud의 줄임말로서 AWS에서 제공하는 온디맨드 클라우드 컴퓨팅 서비스입니다. 컴퓨터를 임대해주는 서비스로서 우리가 PC방에 가서 요금을 내고 컴퓨터를 이용하는 것처럼 aws에서 컴퓨터를 임대해주는 서비스라고 생각하면 이해가 쉽습니다. 우리가 이 서비스를 사용하면 얻을 수 있는 장점은 다음과 같습니다. 하드웨어 구축 비용 및 시간 절감: 실제로 서버를 구축하는 데에는 매우 많은 비용과 노력이 필요합니다. EC2를 사용하면 초기 하드웨어 구축 비용이 필요하지 않고, 짧은 시간안에 원하는 컴퓨팅 리소스를 얻을 수 있습니다. 컴퓨팅 요구사항 변화에 대응: E..

기본기/AWS 2023.12.06

[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) 개발과정[1] Nova-Vision은 어떻게 개발했을까?: 3D Depth Camera 개발[2] Nova-Vision은 어떻게 개발했을까?: AI 가축 체중측정 알고리즘[3] Nova-Vision은 어떻게 개발했을까?: 모델 경량화 및 코드 최적화 Github[1] https://github.com/dohyeonYoon/Nova-Vision[2] https://github.com/dohyeonYoon/BRODY  프로젝트 개요2023년 1월 아래 그림 1과 같이 휴대형(3D카메라 + Edge Computer)으로 동작하는 Nova-..

[모니터링 시스템 구축] 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