반응형

Program 135

[Open CV] 특징점 검출과 매칭 _ 코너 검출

2022.06.19 금일은 특징점 검출과 매칭 코너검출에 관한 강의였다. 이번 시간에는 다양한 코너 검출에 관해 알아본다. 코너라고 하는 부분은 영상에서의 모서리 부분 영상안에서 객체의 뾰족하게 튀어나와있는 부분들을 의미한다. 이러한 코너를 검출을 하는 이유는 코너점들이 영상에서 고유한 특징을 가지고있어서 변별력이 높게 잘 검출할 수 있기 때문. 그래서 영상에서의 코너 특징을 찾아서 두개의 영상을 비교한다거나 다른 부분을 찾거나 매칭을 하는등의 처리를 하는 부분에서 코너검출이 많이 사용된다. 코너의 특징 - 평탄한 영역 ( flat ) & 에지 ( edge ) 영역은 고유한 위치를 찾기 어려움 - 코너 ( corner ) 는 변별력이 높은 편이며 영상의 이동, 회전 변환에 강인함 다양한 코너 검출 방법 ..

Program/OPEN_CV 2022.06.19

[Open CV] 영상 분할과 객체 검출 _ 실전코딩 ( 스노우앱 )

2022.06.18 금일은 실전코딩 간단 스노우앱 만들기에 관한 강의였다. 간단 스노우앱? - 카메라 입력 영상에서 얼굴을 검출하여 재미있는 그래픽을 합성하는 프로그램 구현할 기능 - 카메라 입력 영상에서 얼굴&눈 검출하기 - 눈 위치와 맞게 투명한 PNG 파일 합성하기 ( 안경의 알 사이의 거리를 적당히 resize 해서 합성 ) - 합성된 결과를 동영상으로 저장하기 얼굴 & 눈 검출 - 캐스케이드 분류기 사용 XML 파일 다운로드 : https://github.com/opencv/opencv/tree/master/data/haarcascades 얼굴 검출 XML 파일 : haarcascade_frontalface_alt2.xml 눈 검출 XML 파일 : haarcascade_eye.xml 눈 위치와 ..

Program/OPEN_CV 2022.06.18

[Open CV] 영상 분할과 객체 검출 _ HOG 보행자 검출

2022.06.17 금일은 HOG 보행자 검출에 관한 강의였다. HOG ( Histogram of Oriented Gradients ) 란? - 영상의 지역적 그래디언트 방향 정보를 특징 벡터로 사용 - 2005년 CVPR 학회에서 보행자 검출 방법으로 소개되어 널리 사용되기 시작함 - 이후 다양한 객체 인식에서 활용됨 - HOG 특징벡터 추출 방법에다 SVM 머신러닝 알고리즘을 결합해서 사용했을 때 보행자 검출이 잘됨. * 전체 영상에서 부분 영상을 추출하여 그 부분영상에서 특징을 추출해서 그 부분 영상이 사람이 몸인지를 판단하는 알고리즘으로 동작 * 분할된 Cell 내부에서 전체 360도 방향에서 20도씩 9방향으로 나눈 뒤 히스토그램 계산 그런데 실제 8x8 크기의 셀로 분할하여 그냥 사용하게 되면..

Program/OPEN_CV 2022.06.17

[Open CV] 영상 분할과 객체 검출 _ 캐스케이드 분류기 ( 얼굴검출 )

2022.06.16 금일은 캐스케이드 분류기 얼굴검출에 관한 강의였다. Viola - Jones 얼굴 검출기 - Positive 영상 ( 얼굴 영상 ) 과 negative 영상 ( 얼굴이 아닌 영상 )을 훈련하여 빠르고 정확하게 얼굴 영역을 검출 - 기존 방법과의 차별점 유사 하르 ( Haar-like ) 특징을 사용 AdaBoost 에 기반한 강한 분류 성능 ( * 간단한 형태의 분류기를 여러개 모아서 강력한 형태의 분류기로 ) 캐스케이드 ( cascade ) 방식을 통한 빠른 동작 속도 - 기존 얼굴 검출 방법보다 약 15배 빠르게 동작 2001년 이전까지는 주먹구구식으로 얼굴을 검출했었는데 , ( 예를들면 살색을 검출하고 눈, 코등의 주변에서 엣지를 검출하는 등으로의 방식 ) 하지만 Viola-Jo..

Program/OPEN_CV 2022.06.16

[Open CV] 영상 분할과 객체 검출 _ 템플릿매칭 ( 인쇄체 숫자 인식 )

2022.06.15 금일은 템플릿매칭 이해하기에 관한 강의였다. 인식( Recognition ) 이란? - 어떤 사물을 보고 무엇인지 판단하는 것. - 완전히 새로운 것이 아닌 여러개의 클래스 중에서 가장 유사한 클래스를 선택하는 것. - Classifying a detected object into different categories 각각의 클래스의 특징과 가장 유사도가 높은 값을 선택. 숫자 템플릿 영상 생성 - Consolas 폰트로 쓰여진 숫자 영상을 digit0.bmp ~ digit0.bmp로 저장 - 각 숫자 영상의 크기는 100x150 크기로 정규화 새로 들어온 이미지를 10개의 숫자와 각각 비교해서 가장 유사도가 높은 값을 해당 숫자로 판단 인쇄체 숫자 인식 ( 템플릿 매칭 ) 방법 1...

Program/OPEN_CV 2022.06.15

[Open CV] 영상 분할과 객체 검출 _ 템플릿 매칭

2022.06.14 금일은 템플릿매칭 이해하기에 관한 강의였다. 템플릿 매칭 ( Template matching ) 이란? - 입력 영상에서 ( 작은 크기의 ) 템플릿 영상과 일치하는 부분을 찾는 기법 - 템플릿 : 찾을 대상이 되는 작은 영상. 패치 ( Patch , Kernel ) 이러한 템플릿 매칭이 동작하는 방식은 필터링에서의 동작방식과 상당히 유사하다 일단 템플릿 영상을 좌측 상단부터 시작해서 우측으로, 하단으로 전체스캔하면서 움직인다. 그렇게 유사도와 비유사도 나누게 된다. 그럼 실수형태의 행렬로 나오게되는데 이를 GrayScale 로 표현해서 볼 수 있다. 위와같이 유사도는 비슷한 부분을 밝게표시한것이고 비유사도는 비슷한 부분을 어둡게 표시했다고 볼 수 있다. 우측 유사도/비유사도 영상을 보..

Program/OPEN_CV 2022.06.14

[Open CV] 영상 분할과 객체 검출 _ 모멘트 기반 객체 검출

2022.06.13 금일은 모멘트 기반 객체 검출에 관한 강의였다. 모멘트 ( Moments ) 란? - 영상의 형태를 표현하는 일련의 실수값들의 집합 ( 특징 벡터 추출 방법 ) - 특정 함수 집합과의 상관관계 ( correlatjion ) 형태로 계산 - Geometric moments, Cetntral moments, Normalized moments, Legendre moments, Complex moments, Zernike moments, ART(Angular Radial Transform ), etc. Geometric moments, Cetntral moments, Normalized moments가 성능이 좋은 모멘트는 아니다. 위 3가지의 모멘트는 1960년대에 나왔던 모멘트 추출 방법..

Program/OPEN_CV 2022.06.13

[Open CV] 영상 분할과 객체 검출 _ 그랩컷

2022.06.12 금일은 그랩컷에 관한 강의였다. 그랩컷( GrabCut ) 이란? - 그래프 컷 ( graph cut ) 기반 영역 분할 알고리즘 - 영상의 픽셀을 그래프 정점으로 간주하고, 픽셀들을 두개의 그룹 ( 객체, 배경 ) 으로 나누는 최적의 컷 ( Max Flow Minimum Cut ) 을 찾는 방식 복잡한 그래프 구조를 가상으로 만들고 2개의 그룹으로 영역, 영상분할하여 컷을 찾아내는 방식 그랩컷 영상 분할 동작 방식 - 사각형 지정 자동 분할 - 사용자가 지정한 전경/배경 정보를 활용하여 영상 분할 그랩컷 함수 cv2.grabCut ( img, mask, rect, bgdModel, fgdModel, iterCount, mode ) -> mask, bgdModel, fgdModel i..

Program/OPEN_CV 2022.06.12

[Open CV] 이진 영상 처리 _ 다양한 외곽선 함수

금일은 findContour 로 구한 외곽선 좌표정보에 적용할 수 있는 다양한 외곽선 함수에 대해서 알아본다. 위와같이 Contours 에 적용할 수 있는 다양한 함수들이 있다. 위 설명에 나오지 않은 부가적인 설명을 한다. cv2.arcLength : 길이 계산함수인데 외곽선 좌표들로 구성되는 곡선, 폐곡선의 길이 계산 cv2. minAreaRect : 회전된 사각형의 회전된 각도도 반환 cv2.isContourConvex , convelHull, convexityDefects : Convex ( 볼록한 다각형 ) 즉, 꼭지점들을 모두 둘러싸는 다각형이라고 할 수 있다. 좀 더 자세한 정보는 Open CV doucumet 사이트에서 볼 수 있다. https://docs.opencv.org/4.x/d8/..

Program/OPEN_CV 2022.06.11

[Open CV] 이진 영상 처리 _ 외곽선 검출

레이블링과 더불어 영상을 객체단위로 분석할 때 사용할 수 있는 외곽선 검출에대해 알아본다. 외곽선 검출이란? - 객체의 외곽선 좌표를 모두 추출하는 작업. Boundary tracking. Contour tracing - 옵션에 따라 바깥쪽 또는 안쪽 또는 모든 (홀) 외곽선 -> 외곽선의 계층 구조도 표현 가능 계층구조 : 외곽선 바깥에 다른 외곽선이 있다면 어떤 순서로 있는지에대한 정보 등... 외곽선 객체 하나의 표현 방법 - numpy.ndarray - shape = ( K, 1, 2 ) ( K는 외곽선 좌표 개수 ) 3차원 행렬, K는 외곽선 좌표들의 개수, 1은고정, 2는 X , Y 좌표를 표현 - dtype = numpy.int32 ( 4byte 정수형태 ) 외곽선 검출 함수 cv2.find..

Program/OPEN_CV 2022.06.10
반응형