본문 바로가기

전체 글240

CH09 OpenCV-Python SIFT, KAZE, AKAZE, ORB.. Harris, GFTT, FAST 코너의 문제점 • 이동, 회전 변환에 강인 • 크기 변환에 취약 작은 사각형 가지고 Corner를 찾을려하니 그림2처럼 Edge처럼 보임 그래서 사각형을 키우거나 Image를 resize하는 다양항 크기의 형태도 고려해야함 • 특징점(feature point) ≈ 키포인트(keypoint) ≈ 관심점(interest point) = 다양한 크기의 형태를 고려한 점들 • 기술자(descriptor) ≈ 특징 벡터(feature vector) = 특징점 주변에 부분영상을 잘라서 그 특징점에 대한 특징을 기술하는 방법 크기 불변 특징점 검출 방법 SIFT, KAZE, AKAZE, ORB 등 다양한 특징점 검출 방법에서 스케일 스페이스(scale-space), 이미지 피라미드(.. 2021. 12. 25.
CH09 OpenCV-Python 특징점 검출(Corner) 코너(Corner)의 특징 • 평탄한 영역(flat) & 에지(edge) 영역은 고유한 위치를 찾기 어려움 • 코너(corner)는 변별력이 높은 편이며, 영상의 이동, 회전 변환에 강인함 == Template Matching 보완 다양한 코너 검출 방법 해리스 (Harris) • 영상 내부 작은 영역이 모든 방향에 대해 변화가 큰 경우 코너로 규정 • 코너 응답 함수 R을 반환 => R(x,y)가 충분히 크면 코너로 구분 • cv2.cornerHarris() 함수 사용 = 실수형태의 행렬을 반환 • corner가 중첩 or 금방에 존재할 때 어려움==> goodFeaturesToTrack() 추적하기 좋은 특징 (Good Features to Track) • 해리스 코너 검출 방법을 기반으로 향상된 방.. 2021. 12. 25.
특징 검출 해당 특징점이 존재하는 위치를 알려주거나 해당 특징점을 부각 픽셀의 색상 강도, 연속성, 변화량, 의존성, 유사성, 임계점 등을 사용하여 특징을 파악 특징 검출을 사용하여 다양한 패턴의 객체를 검출할 수 있다. 가장자리(Edge) 가장자리(Edge) 검출은 이미지 내의 가장자리 검출을 위한 알고리즘 픽셀의 그라디언트의 상위 임계값과 하위 임계값을 사용하여 가장자리를 검출 픽셀의 연속성, 연결성 등이 유효해야합니다. 가장자리의 일부로 간주되지 않는 픽셀은 제거되어 가장자리만 남게됩니다. 윤곽(Contours) 윤곽(Contours) 검출은 이미지 내의 윤곽 검출을 위한 알고리즘 동일한 색상이나 비슷한 강도를 가진 연속한 픽셀을 묶습니다. 윤곽 검출을 통하여 중심점, 면적, 경계선, 블록 껍질(findCon.. 2021. 12. 24.
CH08 OpenCV-Python HOG 보행자 검출 HOG(Histogram of Oriented Gradients)란? • 영상의 지역적 그래디언트 방향 정보를 특징 벡터로 사용 • 2005년 CVPR 학회에서 보행자 검출 방법으로 소개되어 널리 사용되기 시작함 • 이후 다양한 객체 인식에서 활용됨 HOG는 edge 정보를 이용하고, Haar, LBP는 영역과 영역의 밝기차를 이용 HOG 알고리즘 1. 부분영상 추출 2. 크기 정규화 3. Gradient 계산(방향과 크기를 알 수 있다) 4. 8*8 크기의 셀(cell)분할(한 cell당) 5. 방향 히스토그램의 bin 개수 = 9 ==> 360도를 9개 구간으로 나눴다 [블록 히스토그램 구하기] • 8x8 셀 4개를 하나의 블록을 지정 → 즉, 블록 하나의 크기는16x16 → 8픽셀 단위로 이동: s.. 2021. 12. 24.
CH08 OpenCV-Python 캐스케이드(Cascade) Viola - Jones 얼굴 검출기 Positive 영상(얼굴 영상)과 negative 영상(얼굴 아닌 영상)을 훈련하여 빠르고 정확하게 얼굴 영역을 검출 • 기존 방법과의 차별점 ▪ 유사 하르(Haar-like) 특징을 사용 ▪ AdaBoost에 기반한 강한 분류 성능 == 간단한 형태의 분류기를 여러개 만들어서 강력한 분류기를 만드는 것 ▪ 캐스케이드(cascade) 방식을 통한 빠른 동작 속도 • 기존 얼굴 검출 방법보다 약 15배 빠르게 동작 유사 하르 특징(Haar-like features) • 사각형 형태의 필터 집합을 사용 • 흰색 사각형 영역 픽셀 값의 합에서 검정색 사각형 영역 픽셀 값을 뺀 결과 값을 추출 • 24x24 부분 영상에서 얼굴 판별에 유용한 유사 하르 특징을 선별 캐스케이.. 2021. 12. 24.
CH08 OpenCV-Python 템플릿 매칭(Template matching) 템플릿 매칭(Template matching)이란? - Classification • 입력 영상에서 (작은 크기의) 템플릿 영상과 일치하는 부분을 찾는 기법 • 템플릿: 찾을 대상이 되는 작은 영상. 패치(patch) 기본적으로 같은 위치의 픽셀끼리 곱하고 다 더해서 유사도를 판단 ==> 회전, 크기변환이 클 때는 찾기 어려움 ==> Key point활용(= Local feature matching) 유사도 => 최댓값(비슷한 부분이 밝게) 비유사도 => 최솟값(비슷한 부분이 어둡게) ==> 거리를 나타낸다 OpenCV filter VS Template filter OpenCV filtering은 영상 이미지의 가상의 픽셀(padding)이 있다는 가정하에 filter를 돌린다 == 동일한 크기를 얻을 .. 2021. 12. 24.
CH08 OpenCV-Python Moment 기반 객체 검출 모멘트(Moments)란? • 영상의 형태를 표현하는 일련의 실수값 • 특정 함수 집합과의 상관 관계(correlation) 형태로 계산 객체 위치가 바뀌어도 동일한 값의 특징 벡터를 추출 - Geometric moments 성능이 안 좋아 ==> Legendre moments, Zernike moments, ART(Angular Radial Transform)이 성능이 좋다 Hu의 7개 불변 모멘트(Hu's seven invariant moments) • 3차 이하의 정규화된 중심 모멘트를 조합하여 만든 7개의 모멘트 값 • 영상의 크기, 회전, 이동, 대칭 변환(Affine Transform)에 불변 객체와 객체 비교할 때(모양) 원하는 객체 검출 가능 # obj = spade만 골라내는 것이 목적 .. 2021. 12. 24.
CH08 OpenCV-Python 영상 분할 그랩컷(GrabCut) 그랩컷(GrabCut)이란? • 그래프 컷(graph cut) 기반 영역 분할 알고리즘 • 영상의 픽셀을 그래프 정점으로 간주하고, 픽셀들을 두 개의 그룹으로 나누는 최적의 컷(Max Flow Minimum Cut)을 찾는 방식 그랩컷 영상 분할 동작 방식 • 사각형 지정 자동 분할 • 사용자가 지정한 전경/배경 정보를 활용하여 영상 분할 영상자체를 두 개의 그룹으로 나누고 픽셀과 픽셀 사이의 관계를 어떻게 정의를 해서 최적의 컷을 만들어 낼 것이냐 전경은 시야에서 중요한 대상 배경은 그 나머지 부분으로 중요성이 덜한 대상 # 입력 영상 불러오기 src = cv2.imread('ch08\\images\\nemo.jpg') if src is None: print('Image load failed!') sy.. 2021. 12. 24.
CH07 OpenCV-Python 객체 단위 분석(Labeling) ▪ 객체 단위 분석 • (흰색) 객체를 분할하여 특징을 분석 • 객체 위치 및 크기 정보, ROI 추출, 모양 분석 등 ▪ 레이블링(Connected Component Labeling) • 서로 연결되어 있는 객체 픽셀에 고유한 번호를 지정 (레이블맵) • 영역 기반 모양 분석 • 레이블맵, 바운딩 박스, 픽셀 개수, 무게 중심 좌표를 반환 ▪ 외곽선 검출(Contour Tracing) • 각 객체의 외곽선 좌표를 모두 검출 • 외곽선 기반 모양 분석 • 다양한 외곽선 처리 함수에서 활용 가능 (근사화, 컨벡스헐 등) ▪ 레이블링(Connected Component Labeling) cv2.connectedComponents(image, labels=None, connectivity=None, ltype.. 2021. 12. 24.