R&D
CENTER

Photometric Stereo — 2D 카메라로 표면의 높낮이를 보는 법

조명 방향을 바꿔 가며 여러 장을 찍으면, 픽셀마다 표면이 어느 쪽을 향하는지 계산할 수 있습니다. 육안과 일반 영상에서 안 보이는 얕은 찍힘을 곡률 맵으로 드러내는 원리를 설명합니다.

기본4 분1 조회
이 강의의 핵심
  1. 같은 표면도 빛이 오는 방향에 따라 밝기가 달라집니다. 이 차이로 픽셀마다 표면의 방향(법선)을 거꾸로 계산합니다.
  2. 결과물은 반사율(albedo), 법선 맵(normal map), 곡률 맵(mean-curvature)입니다. 얕은 찍힘은 곡률 맵에서 가장 뚜렷합니다.
  3. 3D 카메라 없이 2D 카메라와 조명만으로 표면 요철을 검사할 수 있습니다.
  4. 촬영하는 동안 부품이 멈춰 있어야 하고, 거울처럼 반짝이는 면은 추가 처리가 필요합니다.

금속 표면에 얕게 찍힌 자국은 색도 밝기도 주변과 같습니다. 그래서 일반 조명으로 찍은 영상에서는 거의 보이지 않습니다. 하지만 빛을 옆에서 비추면 찍힌 자리의 한쪽 벽은 밝아지고 반대쪽은 어두워집니다. Photometric Stereo는 이 현상을 여러 방향에서 체계적으로 측정해, 표면의 기울기를 픽셀 단위로 계산합니다.

부품 조명 8방향을 차례로 켜며 촬영 Albedo음영 없는 반사율 Normal map표면 방향 Mean curvature찍힘·긁힘 강조 Depth법선을 적분
fineAi Viewer & Inspector는 8방향 조명으로 Normal·Depth·곡률을 계산합니다. 결과 맵은 그대로 이상 탐지 모델의 입력이 됩니다.

원리 — 밝기는 표면 방향과 빛 방향의 각도로 정해진다

무광(난반사) 표면에서 한 점의 밝기는 대략 다음과 같습니다.

밝기 = 반사율 × cos(표면 법선과 빛 방향 사이의 각도)

빛이 표면을 정면으로 비추면 밝고, 비스듬할수록 어두워집니다. 미지수는 픽셀마다 반사율 1개와 법선 방향 2개(기울기), 모두 3개입니다. 빛의 방향을 아는 상태에서 3장 이상을 찍으면 이 미지수를 풀 수 있습니다. 8방향으로 찍으면 그림자나 하이라이트 때문에 일부 영상이 쓸모없어져도 나머지로 안정적으로 풀 수 있습니다.

결과물 네 가지

  • Albedo(반사율) — 조명에 따른 음영을 뺀 표면 본래의 밝기입니다. 얼룩, 변색, 인쇄 불량이 보입니다.
  • Normal map(법선 맵) — 픽셀마다 표면이 향하는 방향입니다. 보통 X·Y·Z 성분을 RGB 색으로 표시합니다.
  • Depth(깊이) — 법선을 적분해 얻은 상대적인 높이입니다. 전체적인 휨이나 변형을 봅니다.
  • Mean curvature(평균 곡률) — 표면이 얼마나 급하게 휘는지입니다. 평평한 면은 0에 가깝고, 찍힘·긁힘의 가장자리에서 값이 크게 튑니다. 얕은 결함은 곡률 맵에서 가장 잘 보입니다.

검사에 쓰는 방법

Multi-Inspector에서는 검사 모드 종류(modeN_type)로 어떤 맵을 쓸지 고릅니다.

모드 입력 영상
albedo, albedo-clahe 반사율 맵 (대비 보정 포함 여부)
mean-curvature, mean-curvature-clahe 곡률 맵
normal-map 법선 맵

이 맵들은 이미 정돈된 영상이라 추가 회전 없이 바로 이상 탐지 모델에 들어갑니다. 정상 부품의 곡률 맵만으로 학습하면, 곡률이 정상과 다르게 튀는 곳을 이상으로 찾아냅니다.

주의할 점

  • 촬영하는 동안 부품이 멈춰 있어야 합니다. 8장을 찍는 사이에 부품이 움직이면 픽셀 대응이 깨집니다. 정지 상태에서 찍거나, 조명 전환이 빠른 컨트롤러(IDGC 등)를 씁니다.
  • 반짝이는 면은 원리가 어긋납니다. 거울 반사는 위의 식을 따르지 않아 하이라이트가 생깁니다. 하이라이트가 생긴 영상을 빼고 계산하거나, 확산판으로 빛을 부드럽게 합니다.
  • 조명 방향을 정확히 알아야 합니다. 조명 위치가 바뀌면 다시 보정합니다.

진짜 3D 형상(높이 mm)이 필요하면 3D 카메라를 씁니다. 다음 강의 3D 비전과 포인트 클라우드에서 다룹니다.