Computer Vision/opencv(python)

[66] 4) 평균 이동 알고리즘

jwjwvison 2021. 3. 28. 14:53
  • Detection vs Recognition vs Tracking

 

  • 평균 이동 (Mean shift) 알고리즘 이란?
    • A non-parametric feature-space analysis technique for locationg the maxima of a density function
    • 국지적 평균을 탐색하면서 이동
    • 모드 검출(mode seeking) 알고리즘

 

  • 평균 이동 알고리즘을 이용한 관심 영역 추적

Image from https://fr.wikipedia.org/wiki/Camshift

 

  • 평균 이동 알고리즘을 이용한 트래킹
cv2.meanShift(probImage,window,criteria) -> retval,window

 • probImage : 관심 객체에 대한 히스토그램 역투영 영상 (확률 영상)
 • window: 초기 검색 영역 윈도우 & 결과 영역 반환
 • criteria: 알고리즘 종료 기준 . (type, maxCount, epsilon) 튜플
   (e.g.) term_crit = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10,1)
    -> 최대 10 번 반복하며 , 정확도가 1 이하이면 (즉 , 이동 크기가 1 픽셀보다 작으면 ) 종료
 • retval : 알고리즘 내부 반복 횟수

 

  • 프로그램 동작 방식
    • 1) 추적할 객체 등록
      • 첫 번째 프레임에서 추적할 객체의 위치를 저장
      • HSV 색 공간에서 HS 히스토그램을 구함
    • 2) 평균 이동 추적
      • 매 프레임마다 히스토그램 역투영을 수행
      • 여기에 평균 이동 알고리즘을 적용하여 객체를 추적!

 

  • 평균 이동 객체 추적 예제: HS 히스토그램 계산