Program/OPEN_CV

[Open CV] 객체추척과 모션벡터 _ 배경차분 _ MOG 배경모델

사막여유 2022. 6. 28. 08:15
728x90

2022.06.29 금일은 배경차분 MOG 배경모델에  관한 강의였다.

 

 

MOG란?

 - Mixture of Gaussian , GMM ( Gaussian Mixture Model )

 - 각 픽셀에 대해 MOG 확률 모델을 설정하여 배경과 전경을 구분

 - 예를들어 ' 배경영상에서 A라는 부분은 원래 픽셀값이 100이었어 ' 라고 정해놓고 전경과 비교하는 것이 아닌
   ' 배경 영상에서 A라는 부분은 100근방의 가우시안 모델을 따르고있어 ' 라고 정의하는 모델

 - Mixutre ( 혼합 ) 를 보면 알 수 있듯 하나의 가우시안 모델을 사용하는 것이 아닌 2개 이상의 가우시안 모델을 사용

 - 데이터 사이언스쪽 전반적으로 사용되는 데이터 분석기법이다.

 

다양한 배경 모델 구성 방법

 -  Static scene : 배경영상 등록

 - Single Gaussian model : 픽셀마다 가우시안 모델을 정의

 - Gaussian mixture model : 가우시안 2개 이상의 모델을 등록
   예를들어 나무를 배경으로 등록시켜놨을때 바람에 흔들리게되면 나뭇잎과 하늘 2개의 모델을 등록한다.

 - Adaptive Gaussian mixture model : 가우시안 모델을 몇개 사용할지 프레임을 보고 알아서 결정해주는 방법

 

OpenCV에서 제공하는 배경 추정 알고리즘

 

 - 위 2개의 클래스 ( KNN, MOG2 ) 를 이용하게되면 저번시간에 배웠던 이동평균 알고리즘 ( 지속적 배경 업데이트 )과 
   비슷하지만 조금 더 성능이 좋은 결과를 얻을 수 있다.

 


BackgroundSubtractorMOG2 클래스 생성 함수

cv2.createBackgroundSubtractorMOG2 ( , history=None, varThreshold = None, detectShadows = None ) -> dst

history : 히스토리 길이. 기본값은 500. ( 과거 몇프레임 이용할지 )

varThreshold : 픽셀과 모델 사이의 마할라노비스 거리 ( Mahalanobis distance ) 제곱에 대한 임계값.
                        해당 픽셀이 배경 모델에 의해 잘 표현되는 지를 판단.
                        기본값은 16. ( 새로들어온픽셀값이 배경영상의 픽셀값과 부합하는지 )

detecShadows : 그림자 검출 여부. 기본값은 True


전면 객체 마스크 생성 함수

cv2.BackgroundSubtractor.apply ( image, fgmask = None, learningRate = None ) -> fgmask

image : (입력 ) 다음 비디오 프레임

fgmask : ( 출력 ) 전경 마스크 영상. 8비트 이진 영상

learningRate : 배경 모델 학습 속도 지정 ( 0~1사이의 실수 ). 기본값은 -1


배경 영상 반환 함수

cv2.BackgroundSubtractor.getBackgroundImage( , backgroundImage = None ) -> backgroundImage

backgoundImage : (출력) 학습된 배경 영상

지금 학습되고있는 상태의 배경영상확인


 

 

fgmask 가 bs.apply 함수로 변환되어 0 or 128 or 255 3개의 픽셀값으로 구성되어있는 영상으로 return이된다.

( 128 - 그림자 )

 

그림자 ( 유 ) - bs.setDetectShadows(True) , MOG2
그림자 ( 무 ) bs.setDetectShadows(False) , MOG2
그림자 (유) , KNN

 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

https://bit.ly/3L3avNW

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

728x90