반응형

분류 전체보기 823

[파이썬 OpenCV] 영상의 특징점 검출과 특징점 그리기 - KAZE, AKAZE, ORB - cv2.Feature2D.detect, cv2.drawKeypoints

1. Harris, GFTT, FAST 코너 검출 방법의 문제점 이전 포스팅에서 공부했던 Harris, GFTT, FAST 코너 검출 방법은 이동, 회전 변화에 강인하지만 크기 변환에 취약하다는 단점이 있습니다. 확대된 영상에서 작은 사각형으로 코너를 찾으려하면 기존의 코너가 에지처럼 보이게 됩니다. 이 경우에 다양한 크기 관점에서 특징점을 검출하는 것이 필요합니다. 입력 영상을 줄이거나 박스를 키우거나 해야 합니다. 즉, 코너를 찾을 때 오리지널 사이즈만 보는것이 아니라 다양항 크기도 고려를 해서 코너 형태를 찾는 것이 고유한 특징을 찾는데에 적합합니다. 2. 특징점 검출 고유한 특징을 나타내는 점들을 집합한 것을 특징점(feature point) or 키포인트(keypoint) or 관심점(inter..

[파이썬 OpenCV] 영상의 코너 검출 - Harris, GFTT, FAST - cv2.FastFeatureDetector_create, cv2.goodFeaturesToTrack

1. 코너 검출 코너는 영상안에서 그림이 나타날 때 객체가 뾰족하게 튀어나온 부분입니다. 코너를 검출하는 이유는 코너점들이 영상에서 고유한 특징을 갖고 있어서 변별력 있게 잘 검출할 수 있는 특징입니다. 이와 반대로 평탄한 영역(flat)과 에지(edge) 영역은 고유한 위치를 찾기 어렵습니다. 평탄한 영역은 하늘에서 추출한 부분 영상입니다. 이 부분 영상이 원본 영상에서 어느 부분인지 명확하지 않습니다. 모호한 부분이 많아 변별력이 떨어지게 됩니다. 영상의 특징을 설명하는 데 적합하지 않습니다. 에지는 바다와 하늘이 만나는 부분입니다. 원본 영상에서 x좌표가 명확하게 어느 부분인지 정확하게 찾기가 어렵습니다. 따라서 고유성과 변별성이 떨어집니다. 코너는 원본 영상에서 코너 영상과 동일한 부분을 딱 한군..

[통계학] 이원배치 분산분석 - 반복이 있는 변량/혼합효과모형

여인권 교수님의 KMOOC 강의 를 수강하면서 공부한 내용을 정리해보았습니다. 반복이 있는 이원배치 분산분석 - 변량/혼합효과모형 반복이 있는 이원배치 변량 또는 혼합효과모형에서 상호작용효과가 있는 경우의 분산분석표와 고정효과모형의 분산분석표의 차이점을 알아보겠습니다. 분산분석 결과에 따른 관심 모수에 대한 추론 방법을 알아보겠습니다. 1. 변량효과모형 (1) 변량효과 모형식 변량효과모형식은 다음과 같이 설계할 수 있습니다. 변량효과모형은 분산에 대해 관심이 있으므로 분산요소에 대한 추론을 해야합니다. (2) 평균제곱(MS)의 기댓값 변량효과모형에서는 고정효과모형과 다르게 MS를 계산합니다. 상호작용이 유의한 경우 주효과에 대한 추론은 MSE 기반이 아닌 MS(AB)을 기반으로 진행합니다. (3) 분산분..

[통계학] 이원배치 분산분석 - 반복이 있는 고정효과모형 - 상호작용 효과, 상호작용도표, 상호작용여부

여인권 교수님의 KMOOC 강의 를 수강하면서 공부한 내용을 정리해보았습니다. 반복이 있는 고정효과모형의 이원배치 분산분석 반복이 있는 고정효과모형의 경우 상호작용이 무엇이고 상호작용효과의 유의성을 확인하는 방법을 알아보겠습니다. 상호작용여부에 따라 분산분석 및 추론 결과를 어떻게 해석해야 하는지 알아보겠습니다. 1. 실험설계 요인 A의 수준 수는 p, 요인 B의 수준 수는 q라고 하겠습니다. 반복이 있는 이원배치 분산분석은 p X q처리를 완전 확률화 하여 n번 반복(개체) 실험을 진행한 것입니다. 2. 자료구조 반복이 있는 이원배치 분산분석의 자료구조는 다음과 같습니다. 반복이 없는 경우와 차이점은 처리들간에 차이가 있는지를 확인하는 것입니다. 처리들간의 차이를 상호작용이라고 합니다. 3. 상호작용 ..

[통계학] 확률화 블록 계획법 - 이원배치 분산분석과의 차이점과 분석결과 해석 방법

여인권 교수님의 KMOOC 강의 "통계학의 이해 2"를 수강하면서 공부한 내용을 정리해보았습니다. 확률화블록설계의 개념과 단순 이원배치 분산분석과의 차이점을 알아보겠습니다. 확률화블록설계에 의한 분석결과를 어떻게 해석해야 하는지 알아보겠습니다. 확률화 블록 계획법 블록(block)은 요인의 처리 효과를 비교하는데 정확도를 높이기 위해 예비 지식을 이용하여 나눈 동일적인 실험 단위를 의미합니다. 예를 들어 수준(처리)는 처치 방법(관심 요인)이면 블록은 성별 또는 연령으로 구분할 수 있습니다. 쌍을 이룬 비교의 일반화(대응표본의 일반화)를 한 것입니다. 블록은 차이가 있다고 가정하므로 가설검정을 하지 않습니다. 1. 실험설계 p개의 수준(처리)과 b개의 블록이 있다고 가정하겠습니다. 각 블록 안에서 처리 ..

[파이썬 OpenCV] HOG 알고리즘을 이용해서 사람 검출하기 - cv2.HOGDescriptor

1. HOG - Histogram of Oriented Gradients 영상의 지역적 그래디언트 방향 정보를 히스토그램으로 표현해서 영상의 형태를 표현하는 방법입니다. HOG와 SVM 머신러닝을 결합하여 정형화된 객체를 검출하는 알고리즘입니다. 2. HOG 알고리즘 전체 영상에서 부분 영상을 추출해서 부분 영상의 특징을 추출하여 전신을 판단하는 알고리즘입니다. 작동 순서 (1) 임의의 크기의 사각형을 정의해서 부분 영상을 추출합니다. (2) 추출한 부분 영상의 크기를 정규화 합니다. (64X128) (3) 64X128 영상의 그래디언트를 계산하여 방향 성분과 크기 성분을 파악합니다. (4) 64X128 영상을 8X8 크기의 셀(cell)로 분할합니다. (5) 각 셀마다 방향과 크기 성분을 이용하여 방향..

[파이썬 OpenCV] 캐스케이드 분류기를 이용해서 정면 얼굴 검출하기 - cv2.CascadeClassifier, detectMultiScale, Haar-like features

1. 캐스케이드 분류기 캐스케이드는 직렬로 연결되어 있다는 것을 의미합니다. 얼굴 검출 용도로 많이 쓰이며 눈, 보행자, 자동차 번호판까지 검출 가능합니다. 2. Viola - Jones 얼굴 검출기 머신러닝을 이용한 방식입니다. Positive 영상(얼굴 영상)과 negative 영상(얼굴 아닌 영상)을 훈련하여 빠르고 정확하게 얼굴 영역을 검출합니다. 기존 방법과의 차별점은 다음과 같습니다. (1) AdaBoost에 기반하여 강한 분류 성능을 갖습니다. (간단한 형태의 분류기를 여러개 모아서 강한 형태의 분류기를 만듭니다.) (2) 유사 하르(haar-like) 특징을 사용합니다. (3) 캐스케이드(cascade) 방식을 통한 빠른 동작 속도를 갖습니다. 기존 얼굴 검출 방법보다 약 15배 빠르게 동..

[파이썬 OpenCV] 탬플릿 매칭으로 원하는 영상 찾기 - cv2.matchTemplate

탬플릿 매칭 - Template matching 템플릿 매칭은 입력 영상에서 (작은 크기의) 템플릿 영상과 일치하는 부분을 찾는 기법입니다. 템플릿은 찻을 대상이 되는 작은 영상을 의미합니다. 커널이라는 용어도 씁니다. 탬플릿 매칭은 노이즈와 밝기 변화에 강합니다. CCOFF 연산을 이용하면 밝기 보정을 해서 매칭하기 때문입니다. 가우시안 노이즈 경우에 correlation 방법이 잘 동작합니다. 다만 기본적으로 같은 위치에 있는 픽셀 값들을 곱하고 더해서 유사도를 판단하는 방식이기 때문에 회전, 크기변환이 심하게 일어난 경우 내가 찾고자하는 템플릿 영상의 위치를 제대로 찾을 수 없습니다. 다른 방법을 이용해야 하는데 키포인트 로칼 피쳐매칭, 로칼 피쳐 포인트 매칭을 생각해볼 수 있습니다. 1. 템플릿 ..

[파이썬 OpenCV] 모멘트 기반 객체 검출 - cv2.matchShapes

모멘트 기반 객체 검출 모멘트(Moments)는 영상의 형태를 표현하는 일련의 실수 값입니다. 모멘트 기반 객체 검출은 두 개의 외곽선, 그레이스케일 영상을 이용하여 모양을 비교하는 방법입니다. 기본적으로 회전, 크기 변환, 대칭, 이동에 강력하며 객체에 변형이 생긴 경우에는 성능이 떨어집니다. 특정 함수 집합과의 상관 관계(correlation) 형태로 계산합니다. f(x,y)는 입력영상을 의미합니다. $x^p, y^q$는 이미 정의되어 있는 다항식 함수입니다. 이 두개를 correlation 계산을 해서 실수값 m을 계산합니다. p와 q를 변경하면서 많개는 몇십개까지 추출하여 영상의 모양 정보를 표현하는 방법입니다. x와 y 함수를 어떻게 정의하냐에 따라 모멘트를 여러가지 형태로 정의할 수 있습니다...

[파이썬 OpenCV] 그랩컷을 이용한 영상 분할 - cv2.grabCut

그랩컷 - GrabCut 그랩컷은 그래프 컷(graph cut)기반 영역 분할 알고리즘입니다. 그래프 알고리즘에서 사용되는 미니멀 컷 알고리즘을 이용해서 영역을 분할합니다. 영상의 픽셀을 그래프 정점으로 간주하고, 픽셀들을 두 개의 그룹(객체 그룹, 배경 그룹)으로 분할하는 최적의 컷(Max Flow Minimum Cut)을 찾는 방식입니다. 이 알고리즘으로 객체와 배경을 구분할 수 있습니다. 객체를 가운데, 배경은 바깥 부분으로 간주합니다. 크게 2가지 방법으로 적용할 수 있습니다. 1. 객체 위치를 러프하게 사각형 형태로 주는 방식 2. 객체 부분과 배경 부분을 마우스로 지정해주고 정보를 제공하고 다시 업데이트 하는 방식 1. 그랩컷 함수 - cv2.grabCut 인자를 어떻게 주냐에 따라 단순하게 ..

반응형