반응형

opencv 77

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

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

[파이썬 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 인자를 어떻게 주냐에 따라 단순하게 ..

[파이썬 OpenCV] 다양한 외곽선 관련 함수 - cv2.arcLength, cv2.contourArea, cv2.approxPolyDP

황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. OpenCV 명령어 출처 : docs.opencv.org/4.3.0/dd/d49/tutorial_py_contour_features.html 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io 다양한 외곽선 함수 외곽선 함수에 대한 자세한 정보는 docs.opencv.org/4.3.0/dd/d49/tutorial_py_contour_features.html 에서 확인하실 수 있습니다. (1) cv.arcLength() 외곽선 길이를 반환합니다. (2) cv2.contourAr..

[파이썬 OpenCV] 영상의 외곽선 검출과 그리기 - cv2.findContours, cv2.drawContours

황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 출처 : docs.opencv.org/4.3.0/d6/d00/tutorial_py_root.html 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io 외곽선 검출 외곽선 검출이란 객체의 외곽선 좌표를 모두 추출하는 작업 입니다. 바깥선 외곽선뿐 아니라 옵션을 적용함으로써 안쪽 외곽선도 검출할 수 있습니다. 외곽선 간의 상관관계도 알 수 있으며, 외곽선의 계층 구조도 표현할 수 있습니다. 외곽선 객체의 표현 방법은 numpy.ndaaray, shape=(k, 1, 2) (k는..

[파이썬 OpenCV] 이진 영상 처리 - 레이블링 - cv2.connectedComponentsWithStats

황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io [파이썬 OpenCV] 영상의 모폴로지 - 열기와 닫기 - cv2.morphologyEx 황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 � deep-learning-study.tistory.com 이전 포스팅에서는 영상의 모폴로지 - 열기와 닫기에 대해 공부해보았..

[파이썬 OpenCV] 영상의 모폴로지 - 열기와 닫기 - cv2.morphologyEx

황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io [파이썬 OpenCV] 영상의 모폴로지 - 침식과 팽창 - cv2.erode, cv2.dilate, cv2.getStructuringElement 황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 � deep-learning-study.tistory.com 이전 포스..

[파이썬 OpenCV] 영상의 모폴로지 - 침식과 팽창 - cv2.erode, cv2.dilate, cv2.getStructuringElement

황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io [파이썬 OpenCV] 이진 영상 처리 - 지역 이진화 - cv2.adaptiveThreshold 황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 � deep-learning-study.tistory.com 이전 포스팅에서는 지역 이진화 방법에 대해 공부해보았습니다..

[파이썬 OpenCV] 이진 영상 처리 - 지역 이진화 - cv2.adaptiveThreshold

황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io [파이썬 OpenCV] 이진 영상 처리 - 자동 이진화 - Otsu 방법 황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 � deep-learning-study.tistory.com 이전 포스팅에서는 자동으로 임계값을 설정해주는 Otsu 이진화 방법에 대해 공부해보..

[파이썬 OpenCV] 이진 영상 처리 - 자동 이진화 - Otsu 방법

황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io 자동 이진화 영상 이진화 처리시 임계값은 경험에 의존해 임계값을 설정하는 것이 일반적입니다. 하지만 영상이 조명이나 환경에 따라서 픽셀 값이 미세하게 변화합니다. 영상마다 사용할 수 있는 임계값이 있는데 임계값을 자동으로 설정해주는 방법이 있습니다. 가장 유명한 방법인 Otsu 이진화 방법에 대해 알아보겠습니다. Otsu 이진화 방법 이진화의 임계값을 구분하는 가장 좋은 방법으로 많이 이용하고 있습니다. 입력 영상이 배경(b..

반응형