이전에 탐지할 객체가 담긴 이미지를 라벨링하고, 학습을 진행했었다. 이제 학습 결과를 바탕으로 모델을 추출하고, 실제 detection까지 진행해보자 모델 추출(Export) 학습을 시작했을때 결과물들이 저장될 경로인 model_dir을 실행인자로 넣어주었다. 학습이 진행됨에 따라 해당 경로에 ckpt라는 파일이 점차 쌓이는데, 이를 체크포인트(checkpoint)라고 한다. 체크포인트는 Tensorflow를 통해 학습된 모델의 구조를 제외한 변수(가중치)만을 담고있는 파일이다. 그렇기 때문에 체크포인트를 바탕으로 재학습이 가능하고, 파일 크기가 크다는 특징이 있다. 이러한 체크포인트는 크기가 커 공유하거나 Tensorflow Serving과 같은 다른 환경으로 배포하기가 힘들다. 즉, 체크포인트를 모델..
전체보기
배경 클라우드 상에 운영중인 외부 서비스의 로그 모니터링을 진행하고자 했다. 모니터링 할 대상은 WAF 로그, ALB 로그, DNS Query 로그가 있었고, 추가로 해외 IP 접근 이력, 관리자 페이지에 접근한 IP 등을 모니터링 해줄 것을 요청 받았다. 사실 Cloudwatch를 통해 모니터링이 가능하지만, 더 깔끔한 UI/UX와 모니터링 방법을 원하셨고, Splunk나 ELK의 구축에는 시간도 오래걸리고, 결정적으로 사내에 모니터링 인프라를 구축할 pc가 없었다. 이에 따라 로그모니터링을 위한 외부 서비스를 추천해주셨고, 그것이 바로 DataDog였다. 서비스 소개 DataDog는 on-premise환경부터 클라우드 환경의 서버까지 통합된 모니터링(로그,이벤트)을 할 수 있는 서비스로, 깔끔한 UI..
캡스톤 프로젝트로 인해 GPU 서버를 사용해야 할 일이 생겼다. 모델 학습에는 내 본체의 GPU를 이용해 어떻게 학습 모델을 추출하기는 했으나, 이걸 웹서버 백엔드단으로 올려서 이미지를 받고 이미지내에서 객체 검출을 해 반환을 해줘야 했다. 학교가 네이버 클라우드(ncloud)와 협약을 맺어서 무료 크래딧 20만원을 사용할 수 있다고 해서 찾아봤지만, GPU 서버는 기본적으로 개인계정에서 생성을 제한한다고 한다. 개인계정에서 GPU서버, 고사양 CPU서버등의 고가용성 서버를 사용하기 위해서는 신청서를 작성해 제출하고, 또 서버 결제에 크레딧과는 다른 재화인 '코인'을 사용해서만 결제를 할 수 있다고 한다. 단순히 tensorflow 테스트를 할 뿐인데 신청서를 작성하고 코인 재화를 선결제해야하는 등의 작..
이제 API로 인식시킬 데이터셋을 학습시켜보자 학습까지의 과정 데이터 수집 > 데이터 라벨링 > 단일 csv 파일 생성 > TFRecord 생성 > Label map 생성 > pre-trained model 다운로드 & config 설정 > 이미지 학습 데이터 수집 학습에 사용할 이미지를 수집하는 단계로 적당한 크기의 객체가 들어있는 이미지를 수집한다. 데이터 라벨링 학습에 사용하기 위해 수집한 이미지 데이터를 라벨링하는 작업이 필요하다. LableImg라는 오픈소스 툴을 이용해 작업을 진행한다. # labelImg 설치 pip install labelImg # labelImg 실행 labelImg labelImg 설치 후 실행, 'Open Dir' 로 이미지가 저장된 폴더 선택하면 폴더 내의 모든 이미..
Tensorflow를 이용해 Object Detection 모델을 학습(train)하고 사용하는 것을 쉽게 도와주는 오픈소스 프레임워크 (이하 TF ObDe API) API 설치 해당 API를 사용하기 위해 Tensorflow를 먼저 설치해줘야 한다. 포스팅에서는 Windows 10에 설치했다. 공식 가이드 : 공식 git, Readthedocs 설치 환경 - Windows 10 Pro - Anaconda 22.9.0(python 3.9) - tensorflow 2.10 - protoc 22.0 - Visual Studio 2022 1. python 가상환경 제작 # 가상환경 생성 conda create -n [가상환경 이름] python==[python 버전] # 가상환경 목록 보기 conda env ..
윈도우에서 powershell, cmd 등 쉘 작업을 하면 눈이 아프다. 칙칙하기도 하고 불편한 점이 한두개가 아니다. 개인적으로 윈도우에서 쉘을 이용할때에는 Windows Terminal을 이용한다. 마소 스토어에서 설치가능하고, Windows 11에서는 기본 설치되어있다. Get Windows Terminal from the Microsoft Store The Windows Terminal is a modern, fast, efficient, powerful, and productive terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and WSL. Its main featur..
가상화 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성하는 기술, 논리적으로 격리된 환경을 생성하는 것이 핵심이다. 하나의 물리 시스템에서 복수의 시스템(서비스)을 구동하는 것, 하드웨어 요소(CPU/메모리/디스크)를 논리적으로 분리하고 각 가상화된 서버별로 분배해 줌으로써 서버를 구동시킨다. 이러한 가상화는 그렇게 최근에 등장한 기술은 아니나, PC의 하드웨어적 스펙이 비약적으로 발전함에 따라 가상화를 안정적으로 활용할 수 있게 되어 근래에 주목받고 있다. 기존에는 하나의 서버에 하나의 OS만 설치해 사용하는 구조를 이용했다고 한다. 그에 따라 각 서비스마다 하나의 물리적 서버가 필요했고, 그에 따라 낭비되는 하드웨어 리소스가 가상화로 하나의 서버에 여러 OS를 설치하게 되어 하드..
보호되어 있는 글입니다.