반응형

Program/OPEN_CV 80

[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

[Open CV] 이진 영상 처리 _ 레이블링

객체 단위 분석 - 영상을 불러왔을 때 이진화하여 객체와 배경을 분리할 수 있다는 가정하에 원하는 모양과 크기를 구분하여 추리고 싶을때 사용 - ( 흰색 ) 객체를 분할하여 특징을 분석 - 객체 위치 및 크기 정보, ROI 추출, 모양 분석등으로 사용됨 간략하게 설명하자면 레이블링 ( Connected Component Labeling ) - 서로 연결되어 있는 객체 픽셀에 고유한 번호를 지정 ( 레이블 맵 ) - 영역 기반 모양 분석 - 레이블맵 , 바운딩 박스, 픽셀 개수, 무게중심 좌표를 반환 외곽선 검출 ( Contour Tracing ) - 각 객체의 외곽선 좌표를 모두 검출 - 외곽선 기반 모양 분석 - 다양한 외곽선 처리 함수에서 활용 가능 ( 근사화, 컨벡스헐 등 ) * 컨벡스 헐 ( Co..

Program/OPEN_CV 2022.06.09

[Open CV] 이진 영상 처리 _ 모폴로지 _ 열기와 닫기

이진 영상의 열기 ( Opening ) 연산 Opening ( 열기 ) = Erosion ( 침식 ) -> Dilation ( 팽창 ) 이진 영상의 닫기 ( Closing ) 연산 Closing ( 닫기 ) = Dilation ( 팽창 ) -> Erosion ( 침식 ) 아래 이미지를 활용하여 열기 연산 효과를 먼저 보면 먼저 열기 연산을 하게되면 침식 연산을 먼저 하게된다. 그럼 객체들을 깎아내게 되는데 객체 주변의 한두픽셀 노이즈객체들을 제거할 수 있게된다. 즉, 작은 돌기, 작은 객체가 사라지고, 얇은 연결선이 끊어지는 효과를 얻을 수 있다. 닫기 연산을 하게 되면 팽창 연산을 먼저 하게되는데 객체들 내부에 있는 작은 홀들을 채워주게된다. 즉, 작은 홈, 작은 홀들이 사라지고 얇은 연결선이 두꺼워 ..

Program/OPEN_CV 2022.06.08

[Open CV] 이진 영상 처리 _ 모폴로지 _ 침식과 팽창

모폴로지 ( Morphology ) 연산이란? - 영상을 형태학적인 측면에서 다루는 기법 * 영상을 다룰때 모양정보에 대한 것을 다루는 기법 - 다양한 영상 처리 시스템에서 전처리 ( pre-processing ) 또는 후처리 ( post-processing ) 형태로 널리 사용 - 수학적 모폴로지 ( mathematical morphology ) 구조 요소 ( Structuring element ) - 모폴로지 연산의 결과를 결정하는 커널, 마스크, 윈도우 * 3x3 정방형 행렬을 정의하고 전체영상을 쭉 스캔하면서 모양정보를 조금씩 Modify 하는 연산 이진 영상의 침식 ( erosion ) 연산 - 구조 요소가 객체 영역 내부에 완전히 포함될 경우 고정점 픽셀을 255로 설정 - 침식 연산은 객체 ..

Program/OPEN_CV 2022.06.07
반응형