Tech & Development/AI
[ Python ] Template Match Detection
[ Python ] Template Match Detection
2022.11.25이미지 연산 방법을 통해 영역을 찾는 방법 중 네번째로 윤곽선이 아닌 템플릿과 일치되는 영역을 검출하는 방법에 대해 알아 보겠습니다. 사용하는 방법은 윤곽선 검출을 이용하는 것 만큼이나 간단합니다. Import packages import numpy as np from imutils.object_detection import non_max_suppression import cv2 import matplotlib.pyplot as plt Function declaration Jupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의 def img_show(title='image', img=None, figsize=(8 ,5)): plt.figure(fi..
[ Python ] Bright Spot Detection
[ Python ] Bright Spot Detection
2022.11.24이미지 연산 방법을 통해 영역을 찾는 방법 중 세번째로 객체의 빛을 이용하여 검출하는 방법에 대해 알아 보겠습니다. 앞서 소개한 이미지 연산을 통한 Object Detection 방법(Shape, Color)을 포함하여 이 글에서 다루는 Bright spot detection 까지 매우 단순한 방법입니다. 이 자체만으로는 현재 직면하고 계신 문제를 풀 수 없을지도 모릅니다. 하지만 이런 기능들로부터 영감을 받아 고민하고 응용한다면 꽤 훌륭한 결과물을 만들 수도 있을 것이라 생각합니다. Import packages import cv2 import numpy as np from scipy.spatial import distance as dist import imutils import matplotlib.py..
[ Python ] Color Detection
[ Python ] Color Detection
2022.11.24이미지 연산 방법을 통해 영역을 찾는 방법 중 두번째로 객체의 색상을 이용하여 검출하는 방법에 대해 알아 보겠습니다. Import packages import cv2 import numpy as np from scipy.spatial import distance as dist import imutils import matplotlib.pyplot as plt Function declaration 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..
[ Python ] Shape Detection
[ Python ] Shape Detection
2022.11.23이미지에서 원하는 영역을 찾기 위해 DeepLearning 기반의 모델을 사용하지만, 매우 간단하게 이미지 연산 방법을 통해 영역을 찾을 수도 있습니다. 그 첫번째로 윤곽선의 속성을 이용하여 모양을 검출하는 방법에 대해 알아 보겠습니다. 이미지를 그레이스케일로 변환 노이즈를 줄이기 위한 이미지 블러링 이미지의 이진화 윤곽선 검출 추출된 윤곽선을 기준으로 근사 다각형 검출 Shape 종류 판단 Import packages import cv2 import imutils import matplotlib.pyplot as plt Function declaration Jupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의 def img_show(title=..
Train Swin-Object Detection using Custom Data(without mask)
Train Swin-Object Detection using Custom Data(without mask)
2022.08.021. Swin Transformer (Hierarchical Vision Transformer using Shifted Windows) Object Detection은 CNN을 기반으로 다양한 bounding box regression 기법을 연구하는 방향으로 진행해 왔습니다. 그러다 2020년 초반부터 NLP분야에서 사용되던 attention기반의 Transformer를 object detection 에 적용해보려는 시도가 이루어지면서 새로운 object detection모델들이 나오기 시작합니다. DETR 모델을 시작으로 Deforma DETR, ViT 등이 나왔고 성능이 EfficientDet보다 조금씩 나아지면서 Transformer를 CV에 적용하려는 연구가 활발해집니다. 하지만 ViT 모델만 ..
CartoonGAN을 이용하여 일본 애니메이션 그림 만들기
CartoonGAN을 이용하여 일본 애니메이션 그림 만들기
2022.03.15GAN(Generative Adversarial Network) 이용하여 실제 사진을 일본 애니메이션의 감독 스타일로 변화시키는 CartoonGAN이라는 모델이 2018년에 소개 되었습니다. 앞에 U-GAT-IT 도 소개 드렸지만 GAN은 이미지를 스타일링 하는 영역에서 많이 활용되는 것 같습니다. 사전 훈련된 모델을 이용하여 테스트를 진행하려고 합니다. 먼저 사전 훈련된 모델 다운로드 후 진행하시기 바랍니다. 모델은 '센과 치히로 행방불명', '하울의 움직이는 성' 등으로 유명한 미야자키 하야오 감독의 애니메이션 스타일과 '시간을 달리는 소녀'의 호소다 마모루 감독의 스타일, '너의 이름은'의 신카이 마코토 감독의 스타일로 변경 할 수 있는 모델입니다. 추가로 Paprika 라는 일본 애니메이션 스타일..
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..
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..
Richer Convolutional Features (RCF) for Edge Detection - 윤곽선 검출
Richer Convolutional Features (RCF) for Edge Detection - 윤곽선 검출
2022.02.09이 글에서는 RCF(Richer Convolutional Features for Edge Detection)를 이용하여 윤곽선을 검출하는 방법에 대해 소개하겠습니다. 이 알고리즘은 XuanyiLi에 의해 소개 되었습니다. 소개된 자료를 보면 성능적인 측면에서 앞서 소개한 HED (Holistically-Nested Edge Detection) 보다 좋은 것 같습니다. Method BSDS500 dataset NYUD RCF 0.819 0.781 HED 0.788 0.741 디렉토리 구조는 다음과 같이 구성했습니다. 소스코드는 Github에 있습니다. ├── detectors │ ├── rcf │ │ ├── weights │ │ │ └── only-final-lr-0.01-iter-130000.pth │ ..
Holistically-Nested Edge Detection (HED) - 윤곽선 검출
Holistically-Nested Edge Detection (HED) - 윤곽선 검출
2022.02.09Holistically-Nested Edge Detection 이 글에서는 HED (Holistically-Nested Edge Detection) 을 이용하여 윤곽선을 검출하는 방법에 대해 소개하겠습니다. 이 알고리즘은 Saining Xie에 의해 소개 되었습니다. HED는 이미지에서 물체의 경계 또는 객체 경계를 검출 할 수 있는 심층 신경망이라 소개하고 있습니다. 디렉토리 구조는 다음과 같이 구성했습니다. 소스코드는 Github에 있습니다. ├── detectors │ ├── hed │ │ ├── weights │ │ │ └── hed_pretrained_bsds.caffemodel │ │ ├── __init__.py │ │ └── deploy.prototxt │ └── __init__.py ├──..
Edge Detection with OpenCV and Deep Learning
Edge Detection with OpenCV and Deep Learning
2022.02.08이미지를 다루다보면 특정 영역의 윤곽선 검출이 필요한 경우가 있습니다. 예를들면 촬영한 문서 이미지를 스캔한 이미지 형태로 만들기 위해 가장 큰 사각형의 영역을 찾는다거나 특정 물체의 경계를 찾기도 하고 나아가 이미지를 분석하거나 패턴을 파악하기 위해서도 사용됩니다. 일반적으로 가장 많이 알려진 edge detection algorithms은 Sobel, Canny, Prewiit, Roberts, Fuzzy Logic 방법 등이 있습니다. 이미지 연산을 통한 윤곽선 검출은 임계값을 수동으로 적용해야 하는데 하나의 이미지에서 잘 적용되는 임계값은 다른 이미지에서 제대로 작동하지 않을 수 있습니다. 그리고 추출하려는 영역이 배경이미지와 대비가 잘 되지 않는 경우 윤곽선을 찾는건 매우 어렵고 복잡한 이미지 ..