CS/Computer Vision

[OpenCV] 9장 에지 검출

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

에지 검출

  • 객체와 배경의 경계를 찾기 위해 사용
  • 픽셀 값의 변화율이 크면 에지로 판단, 미분을 통해 구함
  • 그래디언트 : 변화율과 변화 방향을 동시에 표현
    • 밝기 차이가 클수록 벡터 크기 크게 나타남
  • 미분 근사를 하는 이유 : 영상은 이진화된 값이기 때문에 x의 변화량을 0으로 보낼 수 없음
    • 전진 차분, 후진 차분, 중앙 차분(중앙차분 주로 사용, 이론적으로 근사화 오류가 가장 적기 때문)
    • 2차원 영상에서는 편미분 사용
    • 그래디언트는 x, y 편미분 값 포함 벡터 표현. 벡터의 방향은 변화 정도가 가장 큰 방향을 나타냄. 그래디언트 벡터와 수직인 방향이 에지의 방향
  • 소벨 필터
    • 중앙차분 연산을 했을 때 세로방향, 가로방향 에지를 구할 수 있음
    • 소벨 마스크가 언제 효과적으로 수행되는지 : 편미분 수행에 사용됨.
    • 마스크 종류별 차이점 중점으로 공부
  • 샤르 필터
    • 소벨 마스크보다 정확한 미분 계산 수행
    • 소벨 마스크보다 가중치가 더 큼

그래디언트

  • magnitude()함수 사용 → 벡터의 크기 계산

  • 캐니 에지 검출기
    • 에지 검출 조건 : 정확한 검출, 정확한 위치, 단일 에지
    • 그래디언트의 크기와 방향을 모두 고려, 에지는 연결되어있다는 특성 이용(연결성 기반)
    • 좀 더 정확한 에지 찾을 수 있음(그래디언트 크기 다소 약한 에지도 찾음)
    • 연산 과정
      1. 가우시안 필터링 : 잡음 제거
      2. 그래디언트 계산 : 정확한 에지 찾기 위해 크기&방향 계산 (보통 3x3 소벨 마스크 사용), L1 노름 사용
      3. 비최대 억제 : 에지가 두껍게 표현되는 것을 막음. (가장 변화율이 큰 위치의 에지만 검색됨)
      4. 이중 임계값을 이용한 히스테리시스 에지 트래킹: 높은 임계값과 낮은 임계값을 사용해 에지 검출.
        • 하나의 임계값만 사용하면 이분법으로 결과 판단됨 → 환경 변화에 민감
        그래디언트 크기 > 높은 임계값 : 강한 에지약한 에지 픽셀이 강한 에지 픽셀과 연결 → 에지
      5. 높은 임계값, 낮은 임계값 사이 : 약한 에지

에지 검출 응용

  • 허프 변환 : 직선 검출과 원 검출 (**2차원 xy 좌표에서 직선의 방정식을 파라미터 공간으로 변환하여 직선을 찾는 알고리즘)
    • 직선 검출
      • 직선의 방정식 사용
      • y = ax + b (xy 공간) → b = -xa + y (ab 파라미터 공간)
      • 변환 이유 : a,b가 직선의 형태를 결정하는 파라미터이기 때문.
      • 축적 배열을 이용해 직선이 많이 교차하는 점 찾음
      • 직선 방정식 사용할 경우 모든 형태 직선 표현하기 어려우므로, 실제로는 극좌표계 형식의 직선의 방정식을 이용
      • HoughLines() vs HoughLinesP()
        • HoughLines() : 직선을 나타냄
        • HoughLinesP() : 선분을 나타냄
    • 원 검출
      • 3차원 파라미터 공간에서 축적 배열을 사용하면 연산 비용이 커짐 → 허프 변환 대신 허프 그래디언트 사용
      • 허프 그래디언트 방법
        1. 영상 속 모든 원의 중심 좌표를 찾음
        2. 원의 중심으로부터 원에 적합한 반지름 구함
        3. HoughCircles()로 원 검출

 

728x90
반응형