Data Science

Data Science/Data Mining

정형(Structured), 비정형(Unstructured), 반정형(Semi-Structured) 데이터

현재 빅데이터는 우리 삶에 깊이 녹아들게 되었고 이와 함께 데이터가 무엇인지에 대한 정의와 이해의 중요성이 더 크게 대두되고 있다. 이는 과거 해석의 어려움으로 인해 방대한 양의 비정형 데이터(Unstructured data)가 제대로 활용되지 못하던 상황이 새로운 기법과 방법의 등장으로 까다로웠던 비정형 데이터를 읽고, 저장하고, 분석할 수 있게 되었기 때문이다. 따라서 우리는 새로운 기술들을 통해 이전보다 비정형 데이터를 더 쉽게 이해할 수 있을 뿐만 아니라 분석을 통해 인사이트를 도출해낼 수 있다. IDC에 따르면, 2024년까지 전 세계에서 생성, 캡처, 복사 및 소비되는 데이터의 총량은 매년 149 제타바이트를 넘어설 것이며 그중 상당수는 비정형 데이터가 될 것이라고 한다. 우리는 비정형 데이터..

Data Science/Statistics

[Python] 주성분 분석(Principle Component Analysis, PCA)과 특이값 분해(Singular Value Decomposition, SVD)

주성분 분석(Principle Component Analysis, PCA)주성분 분석(Principle Component Analysis, PCA)이란 차원 축소 알고리즘 중 하나이다. 일반적으로 머신러닝을 이용해 문제 해결을 시도할 때 train sample은 보통 수천 또는 수백만 개의 특성(feature)을 가지고 있다. 이렇게 특성들이 많으면 이 중 어떤 특성이 유의미한 요소인지 찾기 힘들고 동시에 많은 불필요한 데이터로 인해 garbage in garbage out을 경험하게 된다. 뿐만 아니라 학습 시간이 길어져 결국 연구 결과 확인까지 오래 걸릴 수 있다. 따라서 이런 문제를 야기하는 것을 차원의 저주(curse of dimensionality)라고 한다. 다시 말해 결국 차원을 축소하면 이..

Data Science/Computer Vision

[OpenCV] [Python] 이미지 크기 변환(Image Resize)

서버를 운용하거나 영상 처리를 수행할 때 저장공간 또는 수행 속도를 위해 이미지 크기를 변환하기도 한다. 또는 이미지 데이터를 학습 데이터로 만드는 전처리(Preprocessing) 과정이나 학습된 모델에 정해진 사이즈에 맞추기 위해서도 이미지 크기를 변환할 수 있다. 우리는 평소 이미지 파일을 켜놓고 늘렸다 줄였다 손쉽게 이미지 모서리를 드래그하여 변형을 시킬 수 있었다. 이 과정을 위해 예를 들어본다. 우선 새 옷을 구매하였다고 가정해보자. 만약 새로 산 바지가 좀 작다고 양 끝을 잡고 당겨 제멋대로 늘려버리면 이 바지의 형태가 제대로 잡혀있을까? 그렇지 않을 것이다. 또는 큰 스웨터를 세탁기에 그대로 돌려버리면 옷이 작아질 것이다. 즉, 원본 상태에서 변형이 가해졌고 이로 인해 원형의 모습을 잃게 ..

Data Science/Computer Vision

[OpenCV] [python] 이미지 Flip

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=-..

Data Science/Computer Vision

[OpenCV] [Python] 리매핑(Remapping)을 이용한 이미지 반전(Flip), 왜곡(Distortion) 수행

리매핑(Remapping) 리매핑(Remapping)을 이용해 이미지를 직선이 아닌 곡선으로 표현할 수 있는데, 입력 이미지에 기하학적(Geometric) 변환을 적용하는 방법이라고 볼 수 있다. 이를 통해 좀 더 자유도 있는 변환을 수행할 수 있다. 리매핑은 이미지에 변환 행렬 연산을 적용하는 것이 아닌, 비선형 변환을 적용할 수 있다. 즉, 리매핑이란 규칙성 없이 마음대로 이미지의 모양을 변환하는 것을 말한다. 어파인 변환, 투시 변환을 포함한 다양한 변환을 리매핑으로 표현할 수 있다. 오른쪽 수식은 대칭 변환을 리매핑으로 표현한 것이고, 대칭 변환은 x좌표를 (가로크기 -1 -x)로 매핑하였고 y좌표는 그대로 가져온다. x가 0이면 w-1이 되어 가로 끝 좌표를 참조합니다. 따라서 좌우 대칭이 된다..

Data Science/Computer Vision

[OpenCV] [Python] Perspective Transform(원근 or 투시 변환)

투시변환(Perspective Transform) 영상의 기하학적 변환 중 어파인 변환(Affine Transform)보다 자유도가 높은 투시변환(Perspective Transform)이 있다. 따라서 투시변환은 직사각형 뿐만 아니라 사다리꼴 혹은 다른 형태의 임의의 사각형으로 표현이 가능하다. 어파인 변환은 우선 원본 이미지에 3개의 점을 정하고, 이 3개 점을 기준으로 얼마나 뒤틀리게 할것인지 정한다. 반면 투시 변환은 이미지의 끝 점 4개의 이전위치와 변환 후의 위치를 알면 이동 관계를 알 수 있는데 이는 평행 사변형이 아닌 좀 더 자유로운 사각형이기 때문이다. 투시 변환은 보통 3×3 크기의 실수 행렬로 표현한다. 투시 변환은 여덟 개의 파라미터로 표현할 수 있지만, 좌표 계산의 편의상 아홉 개..

AlienCoder
'Data Science' 카테고리의 글 목록 (4 Page)
loading