분류 전체보기
[ 오류 해결 ] Mac OS에서 While executing gem 오류 발생 시
[ 오류 해결 ] Mac OS에서 While executing gem 오류 발생 시
2022.03.03Mac OS에서는 기본 설치되어 있는 시스템의 Ruby를 사용하고 있기때문에 권한 문제가 발생합니다. ruby버전을 변경하기 위해 rbenv를 사용하여 사용 버전을 변경하도록 하겠습니다. Homebrew를 통해 설치하기 brew update brew install rbenv ruby-build rbenv install 확인 아래처럼 나온다면 설치가 완료된 것입니다. 그리고 현재 사용중인 버전은 맥북의 기본 system버전을 사용하고 있다는 것입니다. rbenv versions rbenv를 이용해서 특정 버전의 ruby 설치 아래 코멘드를 입력하면 설치 가능한 버전 리스트가 나옵니다. 현 시점에 최신 버전인 3.1.1 버전을 설치하겠습니다. rbenv install -l rbenv install 3.1.1..
[ OpenCV ] Basic 6 - 이미지 크기조정 (Resize)
[ OpenCV ] Basic 6 - 이미지 크기조정 (Resize)
2022.03.02Image Resize 고해상도의 이미지는 사람의 눈으로 보기에는 좋아 보이지만 컴퓨터가 연산하거나 이미지 파이프라인 처리에는 좋지 않을 수 있습니다. 이미지가 큰 경우 더 많은 데이터가 필요하기 때문에 알고리즘이 데이터를 처리하는 데 오래 걸리기 때문입니다. 이런 고해상도 이미지는 매우 디테일하지만, 컴퓨터 비전/이미지 처리 관점에서 볼 때 이러한 디테일한 사항보다는 이미지의 구조적 구성 요소가 더 중요하기 때문에 고해상도의 이미지를 다운샘플링하여 더 빠르고 정확하게 실행될 수 있도록 합니다. Import packages import cv2 import imutils import matplotlib.pyplot as plt Jupyter Notebook 및 Google Colab에서 이미지를 표시하고 ..
[ OpenCV ] Basic 5 - 이미지 상하, 좌우 대칭 (Flip)
[ OpenCV ] Basic 5 - 이미지 상하, 좌우 대칭 (Flip)
2022.03.02Image Flip x축 또는 y축을 가로질러 이미지를 뒤집는 방법을 소개하겠습니다. 다시말하자면 이미지를 수평 또는 수직을 기준으로 미러링 이미지로 변환하는 것입니다. Flip은 이미지 데이터를 부풀리기 위해서 사용되기도 합니다. Import packages import cv2 import numpy as np import imutils import matplotlib.pyplot as plt Jupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의 def img_show(title='image', img=None, figsize=(8 ,5)): plt.figure(figsize=figsize) if type(img) == list: if type..
[ OpenCV ] Basic 4 - 이미지 회전 (Rotate)
[ OpenCV ] Basic 4 - 이미지 회전 (Rotate)
2022.03.02Image Rotate 이미지를 특정 각도로 회전하는 방법에 대해 알아보겠습니다. 이미지를 회전할 때에는 회전할 지점을 지정해야 합니다. 대부분의 경우는 이미지의 중심을 기준으로 회전을 하지만 임의의 지점을 지정할 수도 있습니다. Import packages import cv2 import numpy as np import imutils import matplotlib.pyplot as plt Jupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의 def img_show(title='image', img=None, figsize=(8 ,5)): plt.figure(figsize=figsize) if type(img) == list: if type(..
[ OpenCV ] Basic 3 - 이미지 이동 (Shift)
[ OpenCV ] Basic 3 - 이미지 이동 (Shift)
2022.03.02Image Shift OpenCV를 이용하여 이미지를 이동하는 방법에 대해 설명드리겠습니다. imutils를 이용하여 간단하게 이미지를 이동 할 수 있지만 기본이 되는 affine transformation matrix (cv2.warpAffine)을 사용하는 방법을 포함하여 설명드리도록 하겠습니다. affine transformation matrix 이라고 하는 2 x 3 행렬을 정의해야 합니다. 이 행렬은 이미지가 왼쪽 또는 오른쪽으로 몇 픽셀을 이동될 것인지, 또는 이미지를 위 또는 아래로 몇 픽셀이 이동할 것인지 정의합니다. 음수 t{x} 값은 이미지를 왼쪽 으로 이동 양수 t{x} 값은 이미지를 오른쪽 으로 이동 음수 t{y} 값은 이미지 를 위로 이동 양수 t{y} 값은 이미지 를 아래로 이동..
Covid-19 사회적 거리두기 측정
Covid-19 사회적 거리두기 측정
2022.02.24코로나19 이후, 즉 포스트 코로나(Post COVID-19) 시대의 세상은 지금과 완전히 다를 것입니다. 이미 각 국가의 고강도 사회적 거리두기 정책으로 인해 보금자리였던 집이 또 하나의 업무 공간으로 탈바꿈하였으며, 오프라인 사회에서 온라인 사회로, 나아가 디지털 사회로 전환하는 발판을 만들어 주었습니다. COVID-19 소위 뉴-노멀이라는 새로운 세상에서 IT는 지금보다 더 큰 역할을 할 것으로 예상됩니다. 언택트(Untact) 문화의 확산, 온라인 소비의 증가, 온라인 교육 등의 생활이 일상화되는 움직임은 국가 간 경계를 뒤로 한 채 전 세계적인 디지털 전환을 가속화할 것이기 때문입니다. 언제 어느 순간 나타날지도 모르는, 어쩌면 이미 다가와 있는 상상 가능한 미래에 사전적으로 대비하기 위해서는 ..
Paperless Hospital - 서류관리 Mobile App 개발 (Android & Python)
Paperless Hospital - 서류관리 Mobile App 개발 (Android & Python)
2022.02.18골칫거리 “종이서류” 동네 병원을 가보면 데스크의 서랍과 가려진 벽면 뒤에는 진료 종이서류로 빼곡하게 쌓여 있습니다. 병원의 종이차트 의무보관 기간은 5년으로, 늘어나는 환자 수 만큼 종이차트 역시 늘어나기 있고 병원은 보관 방법과 폐기 문제를 놓고 골머리를 앓고 있습니다. 그나마 재정에 여유가 있는 대형 병원들은 수십억원의 예산을 투자하여 디지털 사업을 추진하고 있지만 중/소규모의 병의원에서는 단독으로 프로젝트를 외주에 줄만큼 양이 되지 않기 때문에 외부 사업자가 일을 맡지도 않을뿐더러 전문성이 없거나 비싼 비용을 지불해야 하는 경우가 대부분입니다. 특정 의료장비의 경우는 직접 전자 문서화된 데이타로 보관 할 수 있지만, 노후화된 의료장비나 장비의 특성상 출력을 필요로 하는 경우는 종이서류로 존재하게 ..
[Anaconda] CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. 해결 방법
[Anaconda] CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. 해결 방법
2022.02.17Anaconda로 만든 가상환경 활성화 시 아래와 같은 오류가 발생하는 경우가 있습니다. CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run 해결방법은 아래 명령어 수행 후 실행하시면 됩니다. source ~/ [Anaconda 설치경로] /etc/profile.d/conda.sh source ~/opt/anaconda3/etc/profile.d/conda.sh 또는 아래와 같이 사용하셔도 됩니다. source activate vision_env source deactivate
Object Detection Architecture - 1 or 2 stage detector
Object Detection Architecture - 1 or 2 stage detector
2022.02.16Object Detection 방식 중 Sliding Window를 이용하는 방식은 이미지에서 모든 영역을 다양한 크기의 window (differenct scale & ratio)로 탐색하기때문에 매우 비효율적입니다. 이런 비효율성을 개선하기 위해 물체가 있을만한 영역을 빠르게 찾아내는 알고리즘이 Regional Proposal입니다. 즉, regional proposal은 object의 위치를 찾는 localization문제입니다. 대표적으로 Selective search, Edge boxes들이 있습니다. 2-stage detector 먼저 2-stage detector에 대해서 살펴보면, regional proposal과 classification이 순차적으로 이루어지며, 이 뜻은 localiza..
Object Detection 성능평가지표 - mAP, IOU
Object Detection 성능평가지표 - mAP, IOU
2022.02.15IoU ( Intersection over Union ) 일반적으로 Object Detection에서 개별 Object에 대한 검출(Detection) 예측이 성공하였는지의 여부를 IoU로 결정합니다. Area of Overlab은 prediceted bounding box와 ground-truth bounding box가 겹치는 부분입니다. Area of Unin은 predicted bounding box와 ground-truth bounding box를 둘러싸는 영역입니다. 실제 Object 위치 Bounding box와 예측한 Bounding box의 겹치는 영역이 넓을 수록 잘 예측한 것으로 평가합니다. 명칭 IoU Threshold IoU=0.50 >=0.50 IoU=0.55 >=0.55 IoU..
YOLOv5 - Custom Data로 학습하기
YOLOv5 - Custom Data로 학습하기
2022.02.14Object Detection이란? Classification 과 Localization 이 동시에 수행되는 것을 의미합니다. 즉 이미지에서 찾고자 하는 객체의 위치를 찾아내고 찾은 객체의 인스턴스(사람, 자동차, 동물 등)를 분류하는 일을 의미합니다. Object detection은 현재 수많은 컴퓨터 비전 분야에서 응용되고 있습니다. 사실 Object detection에 대한 연구는 Deep Learning이 유형을 끌기 훨씬 전부터 진행되고 있었습니다. 이전 글에서 소개한 Haar Cascades 를 이용한 얼굴 인식방법이나 HOG, SURF, DPM 등도 Deep Learning을 적용하기 이전 기술입니다. 2014년 이후에는 Object detection에 대한 논문이 쏟아져 나오고 있으며, 상..
UGATIT (Selfie2Anime) - 사람을 애니메이션 캐릭터로 만들기
UGATIT (Selfie2Anime) - 사람을 애니메이션 캐릭터로 만들기
2022.02.142020년에 GAN(Generative Adversarial Network) 이용하여 실제 사람을 애니메이션 스타일의 케릭터로 변화하는 모델이 소개 되었습니다. Selfie2Anime 로 더 유명하지만 실제 이름은 U-GAT-IT 입니다. 그리고 논문을 읽어보니 참여하신분들이 모두 한국분들이시네요. 모든 Source는 Github에 올려두었고 U-GAT-IT Source를 Fork하여 간단하게 테스트 할 수 있도록 일부 수정하였습니다. 먼저 수행을 하기 위해서는 predtrained model 을 다운로드 받아야 합니다. 50 epoch과 100 epoch 체크포인트가 있으며 용량이 조금 큽니다. (4GB 이상) selfie2anime checkpoint (50 epoch) selfie2anime che..