OpenCV 48

[OpenCV] QR 코드 검출 방법

QR(Quick Response) 코드란 QR 코드란 컴퓨터가 만든 흑백 격자무늬 패턴 코드로, 정보를 나타내는 매트릭스 형식의 2차원 코드이다. 다른 2차원 코드로 비슷한 바코드가 존재한다. QR 코드는 숫자, 영문자, 8비트 문자, 한자 등의 정보를 저장할 수 있다. ​ QR 코드 검출 방법 입력 영상에서 QR 코드를 인식하기 위해서 먼저 QR 코드 세 모서리에 포함된 흑백 정사각형 패턴을 찾아 QR 코드 전체 영역 위치를 알아내야 한다. ​ 그리고 검출된 QR 코드를 정사각형 형태로 투시 변환한 후 QR 코드 내부에 포함된 흑백 격자 무늬를 해석하여 문자열을 추출해야 한다. 원래 이러한 작업은 매우 복잡하고 정교한 영상 처리를 필요로 하는데, OpenCV 4.0.0 버전부터 QR 코드를 검추랗고 해..

[OpenCV] HOG 알고리즘

HOG(Histogram of Oriented Gradients)란 HOG 알고리즘이란 2005년 다랄(N. Dalal)과 트릭스(B. Triggs)가 발표한 알고리즘으로, 보행자 검출을 하기 위해 널리 사용되는 기법 중 하나이다. ​ HOG는 그래디언트 방향 히스토그램을 의미한다. 사람이 서 있는 영상에서 그래디언트를 구하고, 그래디언트의 크기와 방향 성분을 이용하여 사람이 서 있는 형태에 대한 특징 벡터를 정의했다. 여기에 머신 러닝의 일종인 서포트 벡터 머신(SVM. Support Vector Machine) 알고리즘을 이용하여 입력 영상에서 보행자 위치를 검출할 수 있도록 방법을 제안했다. ​ HOG 계산 방법 보행자 검출을 위한 HOG는 기본적으로 64 x 128 크기의 영상에서 계산한다. HO..

[OpenCV] 캐스케이드 분류기와 얼굴 검출

캐스케이드 분류기(cascade classifier)란 캐스케이드 분류기란 얼굴 검출에 사용되는 알고리즘이다. ​ OpenCV에서 제공하는 얼굴 검출 기능은 2001년에 비올라(P. Viola)와 존스(M. Jones)가 발표한 부스팅(boosing) 기반의 캐스케이드 분류기 알고리즘을 기반으로 만들어졌다. 비올라-존스 얼굴 검출 알고리즘이라고도 부른다. ​ 비올라 존스 얼굴 검출 알고리즘은 기본적으로 영상을 24 x 24 크기로 정규화한 후에 하르 필터(Haar-like filter) 집합으로부터 특징 정보를 추출하여 얼굴 여부를 판단한다. ​ 하르필터란 흑백 사각형이 서로 붙어 있는 형태로 구성된 필터이며, 아래와 같은 예다. 하르 필터 향태에서 흰색 영역 픽셀 값은 모두 더하고, 검은색 영역 픽셀 ..

[OpenCV] 템플릿 매칭(Template Matching)

템플릿 매칭(template matching)이란 템플릿 매칭이란 입력 영상에서 작은 크기의 부분 영상 위치를 찾아내고 싶은 경우에 사용하는 기법을 말한다. 여기서 템플릿(template)이란 찾고자 하는 대상이 되는 작은 크기의 영상을 의미한다. 템플릿 매칭은 작은 크기의 템플릿 영상을 입력 영상 전체 영역에 대해 이동하면서 가장 비슷한 위치를 수치적으로 찾아내는 방식이다. ​ 템플릿 매칭 동작 방식 템플릿 영상을 입력 영상 전체 영역에 대해 이동하면서 템플릿 영상과 입력 영상 부분 영상과의 유사도(similarity) 또는 비유사도(disimilarity)를 계산한다. ​ 유사도를 계산할 경우 템플릿 영상과 비슷한 부분 영상 위치에서 값이 크게 나타나고, 비유사도를 계산할 경우에는 템플릿 영상과 비슷..

[OpenCV] 외곽선 검출 방법

외곽선(contour)이란 객체의 외곽선이란 객체 영역 픽셀 중에서 배경 영역과 인접한 일련의 픽셀을 의미한다. ​ 보통 검은색 배경 안에 있는 흰색 객체 영역에서 가장 최외곽에 있는 픽셀을 찾아 외곽선으로 정의한다. 만약 흰색 객체 영역 안에 검은색 배경 영역인 홀이 존재한다면, 홀을 둘러싸고 있는 객체 픽셀들도 외곽선으로 검출할 수 있다. 즉, 객체의 외곽선은 객체 바깥쪽 외곽선과 안쪽 홀 외곽선으로 구분할 수 있다. ​ 하나의 영상에는 여러 개의 객체가 존재할 수 있으므로 영상 하나에서 추출된 전체 객체의 외곽선 정보는 vector 타입으로 표현한다. vector contours; 선 검출 원리 외곽선 검출 원리는 객체의 외곽선 픽셀 좌표를 모두 추출하여 계층 정보와 함께 반환한다. ​ 예를 들어,..

[OpenCV] 레이블링(Labeling)

레이블링(labeling)이란 레이블링이란 이진화한 이미지에서 형체를 알아볼 수 있도록 하기 위해서 같은 픽셀 값들 끼리 그룹화하여 번호를 매기는 것을 말한다. ​ 영상을 이진화 작업을 수행하면 주요 객체와 배경 영역을 구분할 수 있다. 일단 배경과 객체를 구분하였다면 이제 다시 각각의 객체를 구분하고 분석하는 작업이 필요한데, 이때 사용하는 기법이 레이블링 기법이다. ​ 레이블링은 영상 내에 존재하는 객체 집합에 고유 번호를 매기는 작업으로 연결된 구성 요소 레이블링(connected components labling)이라고도 한다. ​ 레이블링 기법을 이용하여 각 객체의 위치와 크기 등 정보를 추출하는 작업은 객체 인식을 위한 전처리 과정으로 자주 사용된다. ​ 영상의 레이블링은 일반적으로 이진화된 ..

[OpenCV] 모폴로지

모폴로지(morphology)란 모폴로지란 의미를 보면 형태 또는 모양에 관한 학문을 의미한다. 형태학 이라고도 한다. ​ 영상 처리에서 모폴로지란 영상에서 객체의 형태 및 구조에 대해 분석하고 처리하는 기법을 의미한다. 수학적 모폴로지(mathematical morphology)라고도 한다. ​ 모폴로지 기법은 그레이스케일 영상과 이진 영상에 대하여 모두 적용할 수 있다. 하지만 모폴로지는 주로 이진 영상에서 객체의 모양을 단순화시키거나 잡음을 제거하는 용도로 사용한다. ​ 모폴로지 연산 방법 모폴로지 연산을 정의하려면 먼저 구조 요소(structuring element)​를 정의해야 한다. 구조 요소는 필터링에서 사용되는 마스크와 같이 모폴로지 연산의 동작을 결정하는 작은 크기의 행렬이다. ​ 구조 ..

[OpenCV] 영상의 이진화

이진화(binarization)란 영상에서의 이진화란 영상의 각 픽셀을 2개의 부류로 나누는 작업을 말한다. 예를 들어, 입력 영상을 주요 객체 영역과 배경 영역으로 나눈다거나, 영상에서 중요도가 높은 관심영역(ROI)과 비관심 영역으로 구분하는 등 이런 용도로 이진화를 사용할 수 있다. ​ 디지털 컴퓨팅 분야에서 이진화는 입력 값을 0 또는 1로 설정하지만, 영상의 이진화에서는 픽셀 값을 0 또는 255로 설정한다. 그러므로 이진화가 적용된 이진 영상은 보통 흰색과 검은색 픽셀로 구성된다. ​ 영상의 이진화는 기본적으로 영상의 각 픽셀 값을 이용한다. 그레이스케일 영상에 대해 이진화를 수행하려면 영상의 픽셀 값이 특정 값보다 크면 255로, 작으면 0으로 설정한다. 이때 각 픽셀과의 크기 비교 대상이 ..

[OpenCV] 허프 변환 검출

허프 변환(hough transform) 허프 변환 이란 영상에서 추출한 에지 정보를 이용하여 직선 또는 원을 검출하는 방법을 말한다. 컴퓨터 비전에서 직선 검출 하기 위해 주로 허프 변환 기법을 사용한다. ​ 허프 변환 기법이란 2차원 xy 좌표에서 직선의 방정식을 파라미터(parameter) 공간으로 변환하여 직선을 찾는 알고리즘이다. ​ 허프 변환 직선 검출 직선은 영상에서 찾을 수 있는 많은 특징 중 하나이며 영상을 분석함에 중요한 정보를 제공한다. 직선 검출은 자율 주행 자동차에서 차선을 검출하는 용도로 사용할 수도 있고, 수평이 맞지 않는 영상에서 수평선이나 수직선 성분을 찾아내어 자동 영상 회전을 위한 정보로도 사용할 수 있다. ​ 영상에서 직선 성분을 찾기 위해 우선 에지(edge)를 찾아..

[OpenCV] 캐니 에지 검출

캐니(Canny) 에지 캐니 에지 검출이란 1986년 캐니(J. Canny)가 소벨 에지 검출 방법의 단점을 해결할 수 있는 방법을 제시한 검출 방법이다. 제시한 방법은 3가지로, 좋은 에지 검출기의 조건으로 제시했다. ​ 1. 정확한 검출(good detection) : 에지를 검출하지 못하거나 또는 에지가 아닌데 에지로 검출하는 확률을 최소화해야 한다. ​ 2. 정확한 위치(good localization) : 실제 에지의 중심을 찾아야 한다. ​ 3. 단일 에지(single edge) : 하나의 에지는 하나의 점으로 표현되어야 한다. ​ 캐니는 이러한 조건을 만족하는 새로운 형태의 에지 검출 방법을 제시했고, 이 것을 캐니 에지 검출기(canny edge detector)라고 한다. ​ 소벨 에지 ..