CS/Computer Vision

[OpenCV] 13장 객체 검출

0m1n 2022. 12. 30. 13:03
728x90
반응형

템플릿 매칭

  • 영상에서 작은 크기의 부분 영상 위치를 찾아내고 싶을때 사용
  • 작은 크기의 템플릿 영상을 입력 영상 전체 영역에 대해 이동하면서 가장 비슷한 위치를 수치적으로 찾음
  • 유사도, 비유사도 계산
    • 유사도 → 템플릿과 비슷한 부분에서 값 크게 나옴, 비유사도는 반대
    • matchTemplate() 사용

  • 템플릿 영상과 입력 영상과의 비교 방식
    • 제곱차 매칭
      • 두 영상이 완벽하게 일치 → 0, 유사하지 않으면 0보다 큰 양수
    • 상관관계 매칭
      • 두 영상이 유사하면 큰 양수, else 작은 값
    • 상관계수 매칭
      • 두 영상을 미리 평균 밝기로 보정 후 상관관계 매칭
      • 유사하지 않으면 0에 가까운 양수 or 음수
  • 정규화된 상관계수 매칭 방법이 좋은 결과 제공

캐스케이드 분류기와 얼굴 검출

  • 유사-하르 필터 집합으로부터 특정 집합 추출해 얼굴 여부 판별
  • but 유사-하르 필터는 시간이 오래 걸림 → 에이다부스트를 통해 시간 줄임
  • 그럼에도 연산량이 부담될 수 있음 → 캐스케이드 구조 도입(얼굴 아닌 곳 빠르게 거르기)
  • 유사-하르 필터

  • 케스케이드 구조
    1. 유사-하르 필터 1개 사용 → 얼굴 아니면 이후에 유사-하르 수행 x
    2. 1단계 통과시 유사-하르 5개 사용 → 역시 아니면 이후에 수행 x
    3. 2단계 통과시 20개 사용
    • 위 방식으로 얼굴 아닌 영역 빠르게 제거(약 15배 빠름)
  • CascadeClassifier() 사용
    • 객체 생성 후 detectMultiScale()로 정보 가져옴

HOG 알고리즘과 보행자 검출

  • HOG : 그래디언트 방향 히스토그램
  • 그래디언트 크기와 방향 성분을 이용해 사람이 서있는 형태 벡터 정의
  • SVM 알고리즘 이용
    • 보행자 영상과 보행자가 아닌 영상에서 추출한 HOG 특징 벡터를 구분해줌
  • 기본적으로 64x128 크기 영상에서 계산
    • 64x128에서 셀 → 가로 8개, 세로 16개 생성
    • 셀 하나는 9개의 빈으로 구성된 히스토그램 정보 있음
    • 셀로부터 그래디언트 방향 성분에 대한 히스토그램 구함
    • 인접한 4개 셀 합쳐서 block이라고 정의

  • HOGDescriptor() 사용
    • 객체 생성 후 detectMultiScale()로 정보 가져옴

QR 코드 검출

  1. QR 코드 세 모서리에 포함된 흑백 정사각형 패턴을 찾음 → QR 코드 전체 영역 위치 알아냄
  2. 검출된 QR 코드를 정사각형 형태로 투시 변환
  3. QR 코드 내부에 포함된 흑백 격자 무늬 해석 → 문자열 추출
  • QRCodeDetector() 사용 → 객체 생성 필요
    • detect() → QR 코드 영역 검출
    • decode() → QR 코드에 저장된 문자열 추출
    • detectAndDecode()로 한번에 가능
728x90
반응형