현재 빅데이터는 우리 삶에 깊이 녹아들게 되었고 이와 함께 데이터가 무엇인지에 대한 정의와 이해의 중요성이 더 크게 대두되고 있다. 이는 과거 해석의 어려움으로 인해 방대한 양의 비정형 데이터(Unstructured data)가 제대로 활용되지 못하던 상황이 새로운 기법과 방법의 등장으로 까다로웠던 비정형 데이터를 읽고, 저장하고, 분석할 수 있게 되었기 때문이다. 따라서 우리는 새로운 기술들을 통해 이전보다 비정형 데이터를 더 쉽게 이해할 수 있을 뿐만 아니라 분석을 통해 인사이트를 도출해낼 수 있다. IDC에 따르면, 2024년까지 전 세계에서 생성, 캡처, 복사 및 소비되는 데이터의 총량은 매년 149 제타바이트를 넘어설 것이며 그중 상당수는 비정형 데이터가 될 것이라고 한다. 우리는 비정형 데이터..
주성분 분석(Principle Component Analysis, PCA)주성분 분석(Principle Component Analysis, PCA)이란 차원 축소 알고리즘 중 하나이다. 일반적으로 머신러닝을 이용해 문제 해결을 시도할 때 train sample은 보통 수천 또는 수백만 개의 특성(feature)을 가지고 있다. 이렇게 특성들이 많으면 이 중 어떤 특성이 유의미한 요소인지 찾기 힘들고 동시에 많은 불필요한 데이터로 인해 garbage in garbage out을 경험하게 된다. 뿐만 아니라 학습 시간이 길어져 결국 연구 결과 확인까지 오래 걸릴 수 있다. 따라서 이런 문제를 야기하는 것을 차원의 저주(curse of dimensionality)라고 한다. 다시 말해 결국 차원을 축소하면 이..
서버를 운용하거나 영상 처리를 수행할 때 저장공간 또는 수행 속도를 위해 이미지 크기를 변환하기도 한다. 또는 이미지 데이터를 학습 데이터로 만드는 전처리(Preprocessing) 과정이나 학습된 모델에 정해진 사이즈에 맞추기 위해서도 이미지 크기를 변환할 수 있다. 우리는 평소 이미지 파일을 켜놓고 늘렸다 줄였다 손쉽게 이미지 모서리를 드래그하여 변형을 시킬 수 있었다. 이 과정을 위해 예를 들어본다. 우선 새 옷을 구매하였다고 가정해보자. 만약 새로 산 바지가 좀 작다고 양 끝을 잡고 당겨 제멋대로 늘려버리면 이 바지의 형태가 제대로 잡혀있을까? 그렇지 않을 것이다. 또는 큰 스웨터를 세탁기에 그대로 돌려버리면 옷이 작아질 것이다. 즉, 원본 상태에서 변형이 가해졌고 이로 인해 원형의 모습을 잃게 ..
Flip 이미지 상하, 좌우 반전을 위해 Affine 변환 또는 remapping을 이용하는 방법이 있지만 간단하게 OpenCV의 flip 함수를 이용할 수 있다. 아래는 해당 python 소스 코드이다. import cv2 import numpy as np def FlipImage(img, type): ''' :param mode: 1은 좌우 반전, 0은 상하 반전, -1은 상하 좌우 반전 ''' result = cv2.flip(img, type) return result img = cv2.imread('brokenEgg.jpeg') updown = FlipImage(img, type=0) bilateral = FlipImage(img, type=1) both = FlipImage(img, type=-..
리매핑(Remapping) 리매핑(Remapping)을 이용해 이미지를 직선이 아닌 곡선으로 표현할 수 있는데, 입력 이미지에 기하학적(Geometric) 변환을 적용하는 방법이라고 볼 수 있다. 이를 통해 좀 더 자유도 있는 변환을 수행할 수 있다. 리매핑은 이미지에 변환 행렬 연산을 적용하는 것이 아닌, 비선형 변환을 적용할 수 있다. 즉, 리매핑이란 규칙성 없이 마음대로 이미지의 모양을 변환하는 것을 말한다. 어파인 변환, 투시 변환을 포함한 다양한 변환을 리매핑으로 표현할 수 있다. 오른쪽 수식은 대칭 변환을 리매핑으로 표현한 것이고, 대칭 변환은 x좌표를 (가로크기 -1 -x)로 매핑하였고 y좌표는 그대로 가져온다. x가 0이면 w-1이 되어 가로 끝 좌표를 참조합니다. 따라서 좌우 대칭이 된다..
투시변환(Perspective Transform) 영상의 기하학적 변환 중 어파인 변환(Affine Transform)보다 자유도가 높은 투시변환(Perspective Transform)이 있다. 따라서 투시변환은 직사각형 뿐만 아니라 사다리꼴 혹은 다른 형태의 임의의 사각형으로 표현이 가능하다. 어파인 변환은 우선 원본 이미지에 3개의 점을 정하고, 이 3개 점을 기준으로 얼마나 뒤틀리게 할것인지 정한다. 반면 투시 변환은 이미지의 끝 점 4개의 이전위치와 변환 후의 위치를 알면 이동 관계를 알 수 있는데 이는 평행 사변형이 아닌 좀 더 자유로운 사각형이기 때문이다. 투시 변환은 보통 3×3 크기의 실수 행렬로 표현한다. 투시 변환은 여덟 개의 파라미터로 표현할 수 있지만, 좌표 계산의 편의상 아홉 개..