image 6

[OpenCV] Image Cropping

데이터 증강(Data Augmentation)을 위해 이미지를 자를 수도 있고, 특정 영역에 대한 바운딩 박스(Bounding Box)를 가지고 오기 위해 이미지를 자를 수 있다. 이때 가장 간단한 방법은 Height과 Width를 지정해서 해당 범위에 대한 영역만 잘라오는 것이다. def cropping(img, x, y, h=16, w=16): H, W, C = img.shape w_start = np.min([x, 0]) w_end = np.min([x+w, W]) h_start = np.min([y, 0]) h_end = np.min([y+h, H]) cropped_img = img[h_start:h_end, w_start:w_end].copy() return cropped_img def load..

Python/OpenCV 2023.07.06

[OpenCV] Image Registration Processing

Image Registration은 동일한 장면의 서로 다른 이미지를 정렬하는데 사용하는 기술 중 하나이다. 고정된 이미지(Fixed Image)가 있고, 움직인 이미지가 있다면, 움직인 이미지를 고정된 위치로 옮기는 것을 말한다. 이미지가 회전되어 있거나, 일부 잘려있거나 할 때도 사용이 가능하다. Image Registration을 수행하기 위해 MVTec AD Dataset을 예시로 가지고 왔다. import os, sys, cv2, glob import matplotlib.pyplot as plt paths = glob.glob(os.path.join('dataset/hazelnut/train/good/*.png')) path = paths[0] imgs = cv2.imread(path) imgs..

Python/OpenCV 2023.07.05

numpy array 구조를 image로 저장하기

이미지를 호출하기 위해서는 다음과 같은 패키지가 필요하다. from PIL import Image import numpy as np 이미지를 호출하고, 이를 np.array로 변환하면 28*28 이미지는 28*28*1 차원을 가지는 array가 될 것이다. 마지막 1은 channel을 의미하며, channel이 3인 경우 RGB 컬러 이미지를 의미한다. IMG_DIR = f'../datasets/images' img_path = os.path.join(IMG_DIR, file_name + '.jpg') img = np.array(Image.open(img_path)) 위 코드는 이미지가 저장된 경로에 접근해 jpg 파일을 호출하는 코드다. 호출된 코드는 아래와 같은 구조를 가지고 있다. array 구조를..

Python 2022.06.01

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks (NeurIPS'15)

Fatser R-CNN은 기존 R-CNN이 속도가 느린 것을 개선한 모델로 Fast R-CNN 다음 등장한 모델이다. 기존의 2 stage detection에서는 SPP-net이나 Fast R-CNN이 많이 활용되고 있었는데, Faster R-CNN은 속도를 개선하여 Real-Time으로 이미지 처리를 가능하게 했다는 것이다. 제일 처음 나온 R-CNN의 경우 입력받은 이미지에 대해서 2000개의 Region Proposal을 생성하고, 생성된 Proposal을 NMS(Non-Maximum Suppression)을 수행하여 가장 IoU가 높은 하나의 Bbox를 추출하는 형태로 진행하였기 때문에 Region Proposal 단계에서 엄청난 시간이 소요되고 있었다. 이를 개선하기 위해 Fast R-CNN이 ..

[VISION] Semantic Segmentation

다음의 사진은 Semantic Segmentation을 하는 과정을 설명한다. 우리는 이미지에서 각 pixel마다 그 pixel이 어떤 것인지 분류를 하는 문제다. 우리는 이전에 AlexNet, GoogLeNet, ResNet 등 여러 CNN model을 공부해왔다. 만약 개, 고양이를 분류하는 문제를 다룬다고 할 때 이미지의 라벨이 개인지 고양인지 분류하는 문제로 접근하는 것이 아니라, 해당 pixcel은 배경이고, 사람이고, 물체임을 분류하는 방식의 접근이 Semantic Segmentation이다. Semantic Segmentation은 여러 용어로 불리우는데 Dense Classificaiton 혹은 per pixel classification이라고 한다. 딱봐도 일반적인 이미지를 분류하는 문제..

[CS231N] INTROTUCTION

이 파트에서는 cs231n의 자료를 가지고 소개를 해볼 예정이다. cs231n에는 deep learning 을 이용하여 vision 분야에 접근하는 내용을 다루고 있다. visual recognition에는 image, 3D modeling, Grouping, segmentation 의 내용이 있지만 CS231n에서는 image classification에 중점을 두고 강의를 진행한다. 이렇게 이미지를 Local한 지역에 물체를 탐지하는 것을 Object Detection 이라고 하며, 그런 Object가 무엇인지 어떤 행동을 취하는지 Caption을 달아주는 것을 image Captioning 이라고 한다. 이 강의는 image에 대해 상세하게 다룰 예정이다. Vision 분야는 이미지를 탐지하고 분석..

반응형