[패턴인식] 특징 기술(1): 특징 기술자, 영역 기술자

2021. 12. 17. 17:16·인공지능(AI)/컴퓨터비전(CV)

Feature Describe

목차

0. PREVIEW

1. 특징 기술자의 조건

2. 관심점을 위한 기술자

3. 영역 기술자

4. 텍스쳐

5. 주성분 분석

6. 얼굴 인식: 고유 얼굴

 

0. PREVIEW


앞 절에서 공부한 특징 검출 단계

  • 에지, 지역특징,영역
  • 매칭에 사용하기에 턱없이 빈약한 정보

 

풍부한 정보를 어떻게 추출할까?

  • 특징 기술 단계는 검출된 특징의 내부 또는 주위를 들여다 보고 풍부한 정보를 추출
  • 특징의 성질을 기술(Describe)해주므로 기술자(Descriptor),
  • 또는 여러 개의 값으로 구성된 벡터 형태이므로 특징 벡터(Feature Vector)라고 부름

 

 

1. 특징 기술자의 조건


특징 기술자(Feature Descriptor)

  • 특징을 일련의 숫자(벡토)로 표현한 것
  • 특징 기술자를 통해 생성된 특징 벡터 간 거리(distance) 또는 유사도(similarity) 계산

 

 

매칭이나 인식에 유용하기 위한 몇 가지 요구 조건

  • 높은 분별력
  • 다양한 변환에 불변
    • 기하 불변성(Geometry Invariant)과 광도 불변성(Photometric Invariant)
    • 변환에도 불구하고 같은(유사한) 값을 갖는 특징 벡터 추출해야 함
    •  
      다양한 변환
  • 특징 벡터의 크기(차원)
    • 차원이 낮을수록 계산 빠름
  • 응용에 따라 공변과 불변을 선택해야 함

 

2. 관심점을 위한 기술자


 

관심점을 어떻게 기술할 것인가?

관심점 주위에 대한 세밀한 관찰

  • 들여다 볼 윈도우의 크기가 중요
  • 스케일 정보가 없는 관심점의 경우(해리스 코너)
    • 윈도우 크기를 결정하는데 쓸 정보가 없음
    • 스케일 불변성 불가능
  • 스케일 정보가 있는 관심점(SIFT, SURF)
    • 스케일 $\sigma$에 따라 윈도우 크기 결정
    • 스케일 불변성 달성

 

2.1 SIFT 기술자

4장에서 검출한 SIFT 키포인트(관심점)

  • 검출된 옥타브 $o$, 옥타브 내의 스케일 $\sigma_o$, 그 옥타브 영상에서 위치 $(r,c)$ 정보를 가짐

 

SIFT 기술자의 불변성

  • 스케일 불변 달성
    • 윈도우를 옥타브 $o$, 스케일 $\sigma_o$인 영상의 위치 $(r,c)$에  씌움
  • 회전 불변 달성
    • 지배적인 방향 계산
    • 윈도우 내의 그레디언트(gradient) 방향 히스토그램을 구한 후, 최대값을 갖는 방향을 찾음
    • 윈도우를 이 방향으로 씌움
  • 광도 불변 달성
    • 특징 벡터 x를 ||x||로 나누어 정규화함
    • normalized x = $\frac{x}{||x||}$

 

SIFT 기술자 추출 알고리즘 

SIFT 기술자 추출을 위한 좌표계와 4x4 블록

  • 윈도우를 4*4의 16개의 블록으로 분할
    • 각 블록은 그레디언트(gradient)방향 히스토그램 구함
    • 그레디언트 방향은 8개로 양자화
  • 4*4*8=128 차원 특징 벡터 X
  • 알고리즘
    • 더보기
      더보기
      # input: detected keypoint set p_i, by input image f
      #        p_i = (y_i, x_i, sigma_i), 1 <= i <= n
      # output : keypoint set p_i that adding descriptor 
      #        p_i = (y_i, x_i, sigma_i, theta_i, X_i), 1 <= i <= m
      
      for i in range(1, n+1):
      	# calculate dominant direction theta_j about p_i, 
          # that time, one keypoint can be multiple keypoints
         	...
          # calculate feature vector x_u about p_i
          ...
          # normalize X_i
          ...

 

 

2.2 SIFT의 변형

PCA-SIFT(Principle Component Analysis)

  • [Ke2004]
  • 키포인트에 39*39 윈도우를 씌우고 도함수 $d_y, d_x$를 계산 
  • 39*39*2차원의 벡터를 PCA를 이용하여 20차원으로 축소

 

GLOH, 모양 콘텍스트

GLOH와 모양 콘텍스트가 사용하는 원형 윈도우

  • [Mikolajczyk2005a]
  • GLOH
    • 원형 윈도우로 17*16차원의 벡터를 추출하고, PCA를 이용하여 128차원으로 축소
  • 모양 콘텍스트
    • 원형 윈도우로 36차원 특징 벡터 추출

 

 

2.3 이진 기술자

빠른 매칭을 위해 특징 벡터를 이진열로 표현

이진 기술자의 조사 패턴

  • 비교 쌍의 대소관계에 따라 0또는 1
  • 비교 쌍을 구성하는 방식에 따라 여러 변형
  • 비트 연산 기반의 빠른 연산을 제공함
  • 매칭은 해밍 거리(Hamming distance)를 이용하여 빠르게 수행
    • 해밍거리란? 곱집합 위에 정의되는 거리 함수로, 같은 길이의 두 문자열에서 같은 위치에서 서로 다른 기호들이 몇 개인지를 셈
    • '1011101'과 '1001001'사이의 해밍 거리는 2이다. (1011101, 1001001)
    • "toned"와 "roses"사이의 해밍 거리는 3이다. (toned, roses)
       

 

BRIEF, OPR, BRISK

  • 이진 기술자의 특성 비교
    •   스케일 불변 회전 불변 특징 벡터 비트 수
      BRIEF X X 256bit
      ORB X O 512bit
      BRISK O O 512bit
  • 세 가지 이진 기술자가 사용하는 조사 패턴

 

 

 

3. 영역 기술자


영역의 표현

 

 

3.1 모멘트

(q+p)차 모멘트

물리에서 힘을 측정하는데 쓰는 모멘트를 영상에서 특징을 추출하는데 적용

 

중심 모멘트

 

크기(스케일) 불변 모멘트

 

회전 불변 모멘트(PASS)

명암 영역의 모멘트

식 (6.8)의 크기 불변과 식 (6.9)의 회전 분변한 모멘트는 동일하게 정의됨, 잘 안쓰는 모멘트

 

 

3.2 모양

여러가지 모양 특징

 

투영

프로파일

 

3.3 푸리에 기술자(Fourier Transform)

입력 신호를 기저 함수의 선형 결합으로 표현

신호를 기저 함수의 선형 결합으로 표현

두 신호의 계수(0.5,2.0)과 (2.0,0.5)는 둘을 구별해주는 좋은 특징 벡터임

신호가 입력되면 어떻게 계수를 알아낼 것인가?

  • 푸리에 변환으로 가능
    • t(.)가 계수에 해당
    • i축: 공간 도메인, u축: 주파수 도메인
  •  

 

영역에 푸리에 변환을 어떻게 적용하나(PASS)

 

<4. 텍스쳐 부터는 다음 게시글에서 계속...>

https://codingsmu.tistory.com/121

 

[패턴인식] 특징 기술(2): 특징 기술자, 영역 기술자

 

codingsmu.tistory.com

 

반응형

'인공지능(AI) > 컴퓨터비전(CV)' 카테고리의 다른 글

[패턴인식] 매칭  (0) 2021.12.19
[패턴인식] 특징 기술(2): 특징 기술자, 영역 기술자  (2) 2021.12.18
[패턴인식] 영상분할(2): 민시프트, 대화식 물체 분할  (0) 2021.12.16
[패턴인식] 영상분할(1): 영상 분할의 원리, 전통적 방법  (0) 2021.12.16
[패턴인식] 지역 특징 검출(2): 스케일에 불변한 특징점 검출  (0) 2021.12.15
'인공지능(AI)/컴퓨터비전(CV)' 카테고리의 다른 글
  • [패턴인식] 매칭
  • [패턴인식] 특징 기술(2): 특징 기술자, 영역 기술자
  • [패턴인식] 영상분할(2): 민시프트, 대화식 물체 분할
  • [패턴인식] 영상분할(1): 영상 분할의 원리, 전통적 방법
계속지나가기
계속지나가기
NLP Engineer
  • 계속지나가기
    코딩스뮤
    계속지나가기
  • 전체
    오늘
    어제
    • 코딩스뮤:) N
      • Algorithm
        • 백준 문제풀이
        • 프로그래머스 문제풀이
        • 알고리즘 이론
        • 자료구조
        • SW Expert Academy
      • 인공지능(AI)
        • LLMs
        • 자연어처리(NLP)
        • 컴퓨터비전(CV)
        • 딥러닝(DL)
        • 머신러닝(ML)
        • 인공지능기초수학
        • 선형대수학
      • 컴퓨터 세팅
      • Computer Science
        • 유닉스프로그래밍
        • 프로그래밍언어론
        • 디자인패턴
        • 클린코드
        • SW 영어
        • 리눅스
        • 논리회로
      • Server
        • Docker
      • 바이브 코딩 N
        • 클로드 코드 N
  • 블로그 메뉴

    • 홈
    • Who Am I(CV)
    • 태그
  • 링크

    • 깃허브 주소
  • 공지사항

  • 인기 글

  • 태그

    networkflow
    네트워크플로우
    패턴인식
    손실함수
    machinelearning
    군집화
    NLP
    최대유량
    ML
    f1-score
    DigitalImageProcessing
    컴퓨터비전
    결정경계
    파이썬 클린코드
    경사하강법
    머신러닝
    LM
    언어모델
    DIP
    MaximumFlow
    SIFT
    ComputerVision
    알고리즘
    비지도학습
    선형회귀
    에지검출
    디지털이미지처리
    지도학습
    비용함수
    기계학습
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
계속지나가기
[패턴인식] 특징 기술(1): 특징 기술자, 영역 기술자

티스토리툴바