반응형

파이썬 131

[파이썬 OpenCV] 영상의 객체 추적 - 배경 차분 - MOG 배경 모델 - cv2.BackgroundSubtractor

영상의 객체 추적 - 배경 차분 - MOG 배경 모델 MOG 배경 모델을 이용해서 배경 차분을 하는 방법을 알아보겠습니다. 1. MOG란? Mixture of Gaussian, GMM(Gaussian Mixture Model)을 의미합니다. 각 픽셀에 대해 MOG 확률 모델을 설정하여 배경과 전경을 구분하는 방법입니다. 영상의 각각의 픽셀 값을 배경 영상으로 정의합니다. 미리 정의해둔 배경 영상의 각각의 픽셀마다 가우시안 모델을 정의합니다. 픽셀 값이 정해진된 것이 아니라 픽셀 값이 가우시안 형태를 따르는 모델로 정의하는 것입니다. 배경 차분뿐만 아니라 데이터 사이언스에서 전반적으로 사용되는 데이터 분석 기법입니다. 2. 다양한 배경 모델 구성 방법 (1) Static scene static scene은..

[파이썬 OpenCV] 영상의 객체 추적 - 배경 차분 - 이동 평균 배경 - cv2.accumulateWeighted

영상의 객체 추적 - 배경 차분 - 이동 평균 배경 이전 포스팅에서 공부하였던 정적 배경 모델 사용시 문제점은 새로 나타난 객체가 고정되었을 때 이것을 지속적으로 객체로 인식한다는 것입니다. [파이썬 OpenCV] 영상의 객체 추적 - 정적 배경 차분 방법 - cv2.absdiff 함수 영상의 객체 추적 - 정적 배경 차분 방법 배경 차분(Background Subtraction : BS)은 등록된 배경 모델과 현재 입력 프레임과의 차영상을 이용하여 전경 객체를 검출하는 방법입니다. 동영상에서 움직 deep-learning-study.tistory.com 고정된 객체가 일정 시간 지나면 배경으로 등록되는 방법에 대해 알아보겠습니다. 1. 이동 평균 배경 - Moving average 이동 평균 배경 방법..

[파이썬 OpenCV] 영상의 객체 추적 - 정적 배경 차분 방법 - cv2.absdiff 함수

영상의 객체 추적 - 정적 배경 차분 방법 배경 차분(Background Subtraction : BS)은 등록된 배경 모델과 현재 입력 프레임과의 차영상을 이용하여 전경 객체를 검출하는 방법입니다. 동영상에서 움직이는 전경 객체 검출을 위한 기본적인 방법입니다. 배경 영상을 model이라는 용어를 써서 배경 영상을 등록시켜두고 배경 영상과 다른 부븐을 찾아서 그 부분이 새로 나타난 객체라고 판단하는 방식으로 작동합니다. 배경과 현재 프레임의 차이가 있는 부분을 검출하게 됩니다. 정적 배경을 이용한 전경 객체 검출 예제 코드 예제 코드 출처 : 황선규 박사님 github홈페이지 sunkyoo.github.io/opencv4cvml/ 배경 영상과 현재 프레임 영상의 차이를 구하기 위해 cv2.absdiff..

[파이썬 OpenCV] 특징점 매칭에서 좋은 매칭을 선별하는 두 가지 방법 - 정렬, 임계값 이용 - KAZE, AKAZE, ORB

이전 포스팅에서 특징점을 매칭하는 방법에 대해 공부해보았습니다. 하지만 결과값이 너무 복잡하여 매칭이 잘 되었는지 확인하는 것에 어려움이 있었습니다. 이번에는 좋은 매칭을 선별하는 두 가지 방법에 대해 공부해보겠습니다. [파이썬 OpenCV] 두 영상의 특징점 매칭과 매칭 결과 그리기 - cv2.BFMatcher_create, cv2.DescriptorMatcher, cv2. 두 영상에서 검출한 특징점을 서로 매칭하는 방법을 공부해보겠습니다. 특징점 매칭 - Feature point matching 특징점 매칭은 두 영상에서 추출한 특징점 기술자를 비교하여 서로 유사한 기술자를 � deep-learning-study.tistory.com 좋은 매칭 선별 좋은 매칭 선별 방법 두 가지를 알아보겠습니다. 1..

[파이썬 OpenCV] 두 영상의 특징점 매칭과 매칭 결과 그리기 - cv2.BFMatcher_create, cv2.DescriptorMatcher, cv2.drawMatches

두 영상에서 검출한 특징점을 서로 매칭하는 방법을 공부해보겠습니다. 특징점 매칭 - Feature point matching 특징점 매칭은 두 영상에서 추출한 특징점 기술자를 비교하여 서로 유사한 기술자를 찾는 작업입니다. 왼쪽은 4개의 기술자, 오른쪽은 3개의 기술자를 계산했습니다. 가장 비슷한 것을 찾으므로 4개의 점은 다 매칭이 될 것입니다. 위 그림에서 #3이 잘못 매칭된 것을 확인할 수 있는데 알고리즘은 가장 거리가 짧은 곳을 찾아서 매칭을 하기 때문에 매칭이 되었습니다. 이처럼 잘못 연결된 매칭을 걸러내는 작업을 해야합니다. [특징 벡터 유사도 측정 방법] (1) 실수 특징 벡터 : L2 노름(L2 norm) 사용 (2) 이진 특징 벡터 : 해밍 거리(hamming distance) 사용 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 인자를 어떻게 주냐에 따라 단순하게 ..

[파이썬 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 이전 포스팅에서는 영상의 모폴로지 - 열기와 닫기에 대해 공부해보았..

반응형