🐍Python/OpenCV

    [OpenCV] 10-1. Face Detection using Haar Cascades

    튜토리얼의 마지막에서는,Haar Feature 기반의 Cascade Classifiers를 사용하여 얼굴 탐지의 기본에 대해서 알아보고이를 확장해서 눈 탐지에 대해서 알아볼 것이다.BasicsHaar feature를 기반으로한 cascade classifiers를 사용한 객체 탐지는 매우 효과적인 방법이다. 이는 머신러닝 기반의 방법으로, cascade는 대량의 postive(대상이 있는) 이미지와 negative(대상이 없는) 이미지로 부터 학습한다. 이는 다른 이미지 내에서 객체를 탐지하는데 사용 된다.여기서는 얼굴 탐지를 위해서 사용해 볼 것이다. 초기에, 알고리즘은 분류기를 학습시키기 위해 대량의 positive 이미지..

    [OpenCV] 09-2. Image Inpainting

    이번 장에서는,오래된 사진에서의 작은 노이즈나, 스트로크를 제거하는 법인 “Inpainting”에 대해서 배워볼 것이다.OpenCV를 통해서 Inpainting을 구현해 볼 것이다.Basics집안을 찾아보면 검은 점이 찍인, 화질이 번져있는 사진을 찾아볼 수 있다. 이를 복원하기 위한 방법을 생각해 본적이 있는가? 일반적인 페인팅 도구로는 이를 간단하게 지울 수 없다. 왜냐하면 이는 단순히 아무 의미 없는 흰색 구조로 단순히 검은색을 대체할 뿐이기 때문이다. (그냥 0을 1로 바꾸는 것 밖에 의미가 없음) 이러한 상황에서, 이미지 인페인팅이라고 불리는 기술이 사용된다. 이 기법의 기본 아이디어는 간단하다 : 노이즈 부분을 주변 픽셀들로 대체하여, 주변부처럼 자..

    [OpenCV] 09-1. Image Denoising

    이번 섹션에서는이미지 내에서 노이즈를 제거하기 위한 “Non-local Means Denoising” 알고리즘에 대해 배워 볼 것이다. 그리고cv2.fastNIMeansDenoising(), cv2.fastNIMeansDenoisingColored() 등의 함수에 대해 알아 볼 것이다.Theory이전 챕터에서, Gaussian Blurring, Median Blurring 등과 같은 다양한 이미지 스무딩(smoothing) 기술을 봤었다. 이 기법들은 작은 수의 노이즈들을 제거하는데 좋은 성능을 보였다. 이러한 기법들은, 픽셀 주변의 이웃 픽셀을 조금 골라서, gaussian weighted average, median of the values등을 적용시켜서 중..

    [OpenCV] 08-3-2. K-Means Clustering in OpenCV

    cv2.kmeans() 함수를 사용하는 법을 알아볼 것 이다.Understanding ParametersInput parameterssamples : 데이터 타입은 np.float32여야하고, 각 특성들은 단일 열(column) 형태로 입력되어야 한다.nclusters(K) : 끝에 원하는 클러스터의 수 이다.criteria : 반복을 어느 정도 할지 정해주는 기준이다. 기준에 충족이 된다면 알고리즘 반복이 멈추게 된다. 사실 튜플 형태로 3가지로 이루어져 있다.3.a - termination criteria의 종류 : 3가지 flags가 있다 :cv2. TERM_CRITERIA_EPS - 특정 정확도에 다다르면 알고리즘 반복을 멈춘다..

    [OpenCV] 08-3-1. Understanding K-Means Clustering

    K-Means Clustering의 개념에 대해서 이해해보고, 어떻게 작동하는지 알아보자!Theory자주 사용되는 사례를 가지고 이해해 볼 것이다.T-shirt size problem시장에 새로운 티셔츠를 출시하고자 하는 회사를 생각해보자. 모든 사람들의 사이즈를 충족시키기 위해서 다른 사이즈의 모델들을 제조할 것이다. 그래서 아래의 그래프 처럼 사람들의 키와 몸무게를 시각화했다. 회사는 모든 사이즈의 티셔츠를 맞춤으로 만들어 줄 수 없다. 대신에, S,M,L사이즈로 나눈 3가지 모델을 통해 사람들의 사이즈를 맞춰 줄 수는 있다. 이렇게 사람들을 세 그룹으로 나누는 것은 k-means clustering이라고 하고, 알고리즘은 3개가 사람들..

    [OpenCV] 08-2-2. OCR of Hand-written Data using SVM

    이번 장에서는손글씨 분류를 kNN이 아닌 SVM으로 다시 해볼 것이다!OCR of Hand-written DigitskNN에서, 픽셀의 강도를 feature vector로 사용했었다. 하지만 이번에는 Histogram of Oriented Gradients(HOG)를 feature vector로 사용할 것이다.HOG : HOG는 object detection을 목적으로 하는 computer vision과 이미지 전처리에서 feature descriptor로 사용된다. edge의 gradient의 방향정보를 이용하기에 edge orientation histograms 방법과 유사하다.HOG를 찾기 전에, 먼저 이미지를 desk..