Vision & Inspection

[Insight] 이미지를 돌릴까, 마스크를 돌릴까? (Image vs Mask Rotation)

PixelMechanic 2025. 12. 7. 20:35

패턴매칭으로 시작하는 웨이퍼 검사

 

 

웨이퍼 패턴 검사 알고리즘을 최적화하다 보면 필연적으로 마주치는 고민이 있습니다.

Cognex PatMax, CopenCV Templet Matching 등을 이용해 패턴의 틀어진 각도를 알아냈을 때,

  1. 이미지 회전: 들어온 영상을 '기본 이미지'와 똑같이 0도로 펴서 검사할 것인가?
  2. 마스크 회전: 영상은 그대로 두고, 검사 영역(ROI/Mask)을 theta 만큼 돌려서 검사할 것인가?

현재 저희는 전자인 '이미지 회전' 방식을 사용 중입니다. 하지만 "굳이 무거운 영상 변환을 해야 하나? 좌표만 돌리면 더 빠르지 않을까?"라는 의문은 개발자라면 누구나 가질 수 있는 합리적인 의심입니다.

이 글에서는 두 방식의 메커니즘을 비교하고, 왜 웨이퍼 검사(비교 검사)에서는 '이미지 회전'이 정답에 가까운지 기술적으로 분석해 봅니다.

 

1. 두 가지 방식의 프로세스 비교

A. 현재 방식: 이미지 회전 (Image Warping)

  • 준비: 0도 기준의 '기본 이미지' 와 마스크 생성.
  • 실행:
    1. 패턴매칭 알고리즘으로 틀어진 각도 획득.
    2. 입력 영상을 theta만큼 역회전(Affine)시켜 0도 이미지 생성.
    3. 기본 이미지의 마스크를 그대로 씌워 비교 검사 수행.

B. 고민 중인 방식: 마스크 회전 (Mask/Coordinate Transform)

  • 준비: 0도 기준의 '기본 이미지'와 마스크.
  • 실행:
    1. PatMax로 틀어진 각도 획득.
    2. 입력 영상은 원본 그대로 유지.
    3. 마스크 좌표를 theta만큼 회전시켜서 입력 영상 위로 가져감.
    4. 회전된 영역 내부의 픽셀 값을 읽어와 검사 수행.


2. 왜 '이미지 회전'이 유리한가? (비교 검사의 관점)

단순히 밝기 평균을 내거나 길이를 잰다면 B방식도 나쁘지 않습니다. 하지만 '기본 이미지'와 픽셀 대 픽셀로 비교(Subtraction)해야 하는 검사에서는 A방식이 압도적으로 유리합니다.

이유 1: 픽셀 매칭의 불가능성 

  • A 방식: 입력 이미지를 0도로 폈기 때문에, (10, 10) 좌표의 픽셀은 기본 이미지의 (10, 10) 픽셀과 정확히 1:1로 대응됩니다. 단순히 AbsDiff(Img1, Img2) 함수 한 방이면 끝납니다.
  • B 방식: 입력 영상은 기울어져 있습니다. 입력 영상의 $(10, 10)$ 좌표는 기본 이미지의 (10, 10)이 아니라 엉뚱한 곳을 가리킵니다. 비교를 하려면 실시간으로 좌표 역변환 계산을 해서 짝을 맞춰야 하는데, 배보다 배꼽이 더 커집니다.

이유 2: 메모리 접근 효율 

CPU는 메모리를 읽을 때 가로로 연속된 데이터를 읽는 것을 좋아합니다.

  • A 방식: 이미지를 회전시켜 놓으면 데이터가 메모리에 가지런히 정렬됩니다. CPU가 고속도로를 달리듯 데이터를 퍼올 수 있습니다. (SIMD/AVX 가속 가능)
  • B 방식: 마스크가 회전되면 읽어야 할 메모리 주소가 불연속적으로 널뛰기(Jump)를 합니다. CPU 캐시 미스(Cache Miss)가 폭발하며 연산 속도가 급격히 느려집니다.

이유 3: 마스크의 알리아싱 

사각형 마스크를 회전시키면, 픽셀 격자(Grid) 특성상 가장자리가 계단처럼 울퉁불퉁해집니다. 이로 인해 검사 영역의 경계면에서 노이즈가 발생하거나 검사 정밀도가 떨어질 수 있습니다.


3. B 방식(마스크 회전)은 언제 쓰는가?

그렇다면 B 방식은 쓸모가 없을까요? 아닙니다. 다음과 같은 경우에는 B 방식이 더 좋습니다.

  1. 이미지 변형 절대 금지: 의료 영상이나 과학 계측처럼, 어파인 변환 시 발생하는 미세한 픽셀 값 변화(보간)조차 허용되지 않을 때.
  2. 단순 측정: 비교가 아니라, 단순히 특정 영역의 평균 밝기(Mean)최댓값(Max)만 구할 때.
  3. GPU 사용 시: GPU는 텍스처 매핑 하드웨어가 있어서 회전된 좌표를 읽는 비용이 거의 '0'에 가깝습니다.


결론: 웨이퍼 검사는 '이미지 회전'이 맞다

우리가 하려는 것은 '기본 이미지(Base Image)'와의 정밀 비교입니다.

입력 영상을 '기본 이미지'와 동일한 0도 좌표계로 변환(Affine)해 두는 것은, 이후 이어질 복잡한 검사 알고리즘들을 가장 빠르고 단순하게 만드는 '가장 효율적인 투자'입니다.

반응형