AI/컴퓨터 비전 7

이미지 데이터 증강 (Data augmentation)

어떤 모델이 됐던 데이터가 많아야 오버피팅을 피할 수 있음. Data augmentation은 원래 이미지를 변형해서 이미지 수를 늘리는 것임. 우리가 학습할 때 사용한 데이터들은 실제 상황에서 없을 수도, 없는 데이터가 있을 확률이 높음. 따라서 여러 다양성을 가진 데이터들이 있어야 일반화하기 좋다. Augmentation 유형 공간 / 픽셀 변형이 있음. 공간 : vertical, horizontal, center, random, rotate, translate ... 등 뒤집거나 돌리거나 픽셀 : bright, grayscale, blur, noise, gamma .. 등 밝게, 색상, 노이즈, 흐리거나 keras ImageDataGenerator 주피터 노트북으로 실습했습니다. import os ..

AI/컴퓨터 비전 2023.10.10

GoogleNet (InceptionNet) 정리해보기

Lenet-5를 이어 일반적인 CNN 구조가 정착됐다. 일반적인 CNN 구조라 하면 Conv-Layer > Normalication, Pooling > FC 구조이다. ImageNet과 같은 데이터 크기가 큰 경우 모델을 더 Deep하게 Layer 수를 늘리고 Dropout을 이용해 overfitting을 피하도록 했다. 점점 AI 기술이 모바일이나 임베디드 상에서 효율적으로 활용하기 위해 연산량을 줄이도록 하는 알고리즘을 개발하게 됐다. GoogleNet은 기존 AlexNet 보다 1/12 배의 연산량을 가진다. Inception Module을 사용하는 것이 그 이유인데, 모듈 구조를 살펴보자. 대표사진 삭제 Inception module 일단 여기서 가장 중요한 것은 1x1 Convolution 이다..

AI/컴퓨터 비전 2023.10.10

IOU : 모델이 예측한 결과와 실측 Box가 얼마나 정확하게 겹치는 가를 나타내는 지표

IOU : 모델이 예측한 결과와 실측 Box가 얼마나 정확하게 겹치는 가를 나타내는 지표 Detection 데이터 셋별로 IOU 임계값이 다르다. Pascal voc는 0.5, MS COCO는 0.5 ~ 0.95 의 여러가지 경우를 두고 제출하도록 한다. 위 그림은 예시이다. 만약 Pascal voc 데이터 셋에서 왼쪽 2가지 경우만 Detecte 성공이고 나머지 3가지 경우는 실패이다. import numpy as np def compute_iou(cand_box, gt_box): # Calculate intersection areas x1 = np.maximum(cand_box[0], gt_box[0]) y1 = np.maximum(cand_box[1], gt_box[1]) x2 = np.minimu..

AI/컴퓨터 비전 2022.12.04

NMS : 여러 Bounding Box 중 확실한 Box만 선택하는 기법

NMS : 여러 Bounding Box 중 확실한 Box만 선택하는 기법 여러 개의 Bounding Box를 가지는 이유 : selective search 경우에도 object가 있을만한 공간을 box를 침. object가 있는데 실수를 하면 안 되기 때문 NMS 진행 과정 Detected 된 bounding box 별로 특정 Confidence threshold 이하 bounding box는 가장 먼저 제거 가장 높은 confidence score를 가진 box 순으로 내림차순 정렬하고 아래 로직을 모든 box에 순차적으로 적용. 정렬된 confidence score를 가진 box를 차례로 기준으로 삼고 다른 box들과 IOU를 구함. 구한 IOU가 특정 threshold 이상인 box를 모두 제거. ..

AI/컴퓨터 비전 2022.12.04

[Python, OpenCV 4로 배우는 컴퓨터 비전과 머신러닝] CH03

func1 : 이미지를 회색조 이미지로 불러오고 화면에 띄우기 까지 import numpy as np import cv2 def func1(): img1 = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE) if img1 is None: print('Image load failed!') return print('type(img1):', type(img1)) print('img1.shape:', img1.shape) if len(img1.shape) == 2: print('img1 is a grayscale image') elif len(img1.shape) == 3: print('img1 is a truecolor image') cv2.imshow('img1', img1) c..

AI/컴퓨터 비전 2022.12.04

[Python, OpenCV 4로 배우는 컴퓨터 비전과 머신러닝] CH02

OpenCV의 버전을 출력하고 이미지를 화면에 출력하는 실습. 해당 챕터를 python으로 설명할 것이 없다. import sys import cv2 print('Hello OpenCV', cv2.__version__) img = cv2.imread('ch02/lenna.bmp') #이미지를 읽어 오고 if img is None: #만약 이미지가 제대로 안 들어왔다면 print('Image load failed!') sys.exit() cv2.namedWindow('image show') #화면의 이름 설정 cv2.imshow('image show', img) #화면 이름에 해당하는 곳에 img를 출력해라 ! cv2.waitKey() #사용자가 key를 입력할 때까지 기다려라 cv2.destroyAllW..

AI/컴퓨터 비전 2022.11.25
728x90
반응형
LIST