조명이 5 % 어두워지면 정상 화소 몇 개가 불량이 될까
ALGORITHM
조명이 5 % 어두워지면 판정선을 고정한 검사기는 정상 화소의 19 %를 불량으로 읽습니다.
AI 이상 탐지도 조명이 바뀌면 점수를 잃습니다. 모델을 고르기 전에 조명이 얼마나 흔들리는지부터 숫자로 적어 두어야 합니다.
읽는 시간 약 16분
무광 사출품 커버를 검사대에 올리고 돔 조명을 켠다고 해 보죠. 표면은 빛을 사방으로 고르게 흩어 주는 무광 면이고, 반사율1은 중간 정도라고 가정합니다. 카메라 화면에서 정상 면은 8비트 밝기 눈금2으로 140 언저리에 놓이고, 긁힌 자리는 그보다 15 % 어두운 119 언저리에 놓입니다. 둘 다 계산을 위한 가정입니다. 두 값 사이의 21단계가 판정이 기대는 전부라서, 설비를 세우는 첫날에는 한가운데인 129.5에 선을 긋고 그 아래를 불량이라 부릅니다.
이 선은 조명이 늙어도 제자리를 지킵니다. 출력이 조금씩 줄어든 조명 아래에서 정상 면은 140에서 내려오기 시작하고, 선과의 간격이 줄어든 만큼 정상 화소가 불량 쪽으로 넘어갑니다. 반대로 낡은 조명을 새것으로 갈아 끼우면 밝아진 긁힘이 선 위로 올라가 검사를 통과합니다. 어두워지는 쪽에서는 정상품이 불량 상자로 쏟아지고 재검 인력이 한 명 더 붙으며, 밝아지는 쪽에서는 긁힌 부품이 양품 상자에 담겨 나갑니다. 조명 변화가 몇 %일 때 이 선이 무너질까요.
10월 3일 arXiv에 올라온 VAND 4.0 챌린지 보고서3(논문 번호 2610.04392)가 같은 질문을 점수로 보여 줍니다. 같은 장면을 조명 설정만 바꿔 다시 채점했더니, 일반 설정으로 참가한 아홉 방식이 모두 점수를 잃었거든요. 그 낙폭을 설비의 조명 변화로 옮기면 어떤 숫자가 나오는지 계산으로 따라갑니다.
같은 장면에 조명만 바꿔 다시 채점한 표
MVTec AD 2는 공장 부품 사진을 모은 데이터 세트이고, 보고서는 이 데이터로 산업용 이상 탐지4 방식들을 겨루게 했습니다. 시험 사진은 두 묶음으로 나뉩니다. 첫 묶음 TESTpriv는 학습 사진과 같은 조명에서 찍은 것이고, 둘째 묶음 TESTpriv_mix는 같은 장면을 무작위로 바꾼 조명 설정에서 찍은 것입니다(3.2절). 부품도 카메라도 자리도 그대로이고 달라진 것은 빛뿐입니다. 채점 점수 SegF15은 불량 화소를 얼마나 정확히 칠했는지를 0에서 100 사이로 나타냅니다.
일반 설정 표(표 1)에서 1위를 차지한 SuperADD는 57.42에서 54.35로, 2위 ISVL++는 58.31에서 53.75로 내려갔습니다. 낙폭이 가장 큰 쪽은 ST로 41.53에서 33.97까지 7.56점, 상대값으로 18.2 %를 잃었고, 가장 작은 쪽은 DL-SubspaceAD로 46.88에서 45.36, 1.52점(3.2 %)에 그쳤습니다. 아홉 방식을 모두 계산하면 평균 낙폭은 4.26점, 상대값 평균은 9.3 %입니다. 저라면 이 표에서 순위보다 두 열의 차이를 먼저 읽습니다.
표에는 조명이 몇 % 바뀌었는지가 적혀 있지 않습니다. 보고서는 이 시험이 설비마다 다른 셋업이나 조명 광원의 노후에서 생기는 변화를 가늠하려는 것이라고 밝혔고(3.1절), 4.1절에서는 조명 변화에 대한 강건성이 여전히 핵심 난제로 남아 있다고 적었습니다. 낙폭이 조명 몇 %에 해당하는지는 표만으로 알 수 없습니다. 계산은 모델 안이 아니라 모델 앞, 카메라가 받는 밝기 눈금에서 시작합니다.
영점이 틀어진 저울은 같은 물건을 다르게 읽는다
카메라가 읽는 한 칸의 밝기는 조명이 그 자리에 쏟는 빛의 양, 표면이 그중 얼마를 카메라 쪽으로 돌려보내는가(반사율), 센서가 빛을 받는 시간을 곱한 값으로 정해집니다. 곱셈이라서 조명 출력이 5 % 줄면 정상 면도, 긁힌 자리도, 배경도 똑같이 5 %씩 어두워집니다. 비율은 그대로이고 달라지는 것은 절대 눈금입니다. 140이던 정상 면은 133이 되고 119이던 긁힘은 113.05가 되어, 대비 15 %는 그대로인데 두 값의 간격은 21에서 19.95로 줄어듭니다. 영상 밝기를 조도 함수와 반사율 함수의 곱으로 놓는 이 구조는 산업 검사용 조명 보정 특허 US 6,445,812 B1(Siemens Corporate Research Inc.)의 청구항 1에도 그대로 들어 있습니다.
화소 한 칸 한 칸에는 잡음도 얹힙니다. 센서가 같은 면을 연달아 찍어도 값이 140, 137, 144처럼 조금씩 흔들리고, 이 흔들림의 폭인 표준편차 σ6를 4단계로 가정합니다. 정상 면의 값은 140을 중심으로 4단계 안팎에서 퍼지는데, 선까지의 거리는 10.5단계로 σ의 2.6배입니다. 이만큼 떨어져 있으면 첫날에는 정상 화소 1,000개 중 4개 남짓만 선 아래로 떨어집니다.
영점이 얼마나 내려앉았는지를 화면 안에서 읽으려면 기준이 되는 물체가 하나 필요합니다. 아래 그림은 검사 시야 한구석에 반사율이 변하지 않는 회색 타일을 세워 두고, 부품과 타일을 같은 조명이 함께 비추는 모양을 그린 것입니다.

그림에서 먼저 보는 곳은 타일과 부품이 같은 빛을 받는 자리입니다. 타일 값이 곧 그 시점의 조명 출력을 읽는 눈금이 되기 때문입니다. 정상 면이 140으로 찍히는 날 타일이 90으로 찍혔다면(타일 값은 계산을 위한 가정입니다), 타일이 81로 내려온 날 조명은 10 % 줄어든 것으로 읽습니다. 영점을 읽는 법은 이렇게 정해졌고, 선이 얼마나 빨리 무너지는지는 아직 모릅니다.
조명이 5 % 줄면 정상 화소의 19 %가 선 아래로 떨어진다
계산은 정규분포 한 줄이면 끝납니다. 조명이 d % 줄면 정상 면의 중심은 140×(1−d)로 내려오고, 선 129.5 아래로 떨어지는 화소의 비율은 선과 중심의 거리를 σ=4로 나눈 값에서 나옵니다. d가 0이면 그 값은 2.63이고 비율은 0.43 %입니다. 1 %만 줄어도 1.15 %, 2 %에서 2.71 %, 3 %에서 5.76 %로 올라갑니다. 3 %까지는 오검출이 열세 배 남짓 늘 뿐 사고처럼 보이지 않지만, 5 %에서 19.08 %, 7.5 %에서 정확히 절반인 50 %, 10 %에서는 80.92 %가 선 아래로 들어갑니다.
밝아지는 쪽도 같은 방식으로 셉니다. 긁힌 자리의 중심 119가 조명과 함께 올라가 선 129.5에 닿으면 긁힘의 절반이 통과하고, 그 지점은 조명이 8.82 % 밝아졌을 때입니다. 3 %에서는 4.16 %, 5 %에서는 12.77 %를 놓칩니다. 그림에서는 두 쪽을 한 축에 놓았습니다.

그림에서 먼저 눈이 가는 곳은 빨간 곡선이 바닥을 떠나는 자리입니다. 왼쪽으로 갈수록(조명이 어두워질수록) 정상 화소가 선 아래로 떨어지는 비율이 커지고, 오른쪽으로 갈수록(밝아질수록) 긁힌 화소가 선 위로 올라가는 비율이 커집니다. 어느 쪽이든 3 % 근처에서 4~6 %로 떠올랐다가 6~9 % 구간에서 가파르게 올라 절반 가까이에 닿습니다. 파란 곡선은 선을 기준 타일에 묶었을 때의 오류율로, ±10 % 구간 전체에서 1 % 아래에 머뭅니다.
간격 21단계가 잡음 폭 4단계의 다섯 배를 넘으니 첫날 오류는 0.43 %로 낮지만, 같은 이유로 선이 분포 한가운데로 들어오는 속도도 빠릅니다. 이 숫자들은 화소 하나를 선 하나로 가르는 가장 단순한 판정기의 값이고, 잡음이 서로 독립이라는 이상적인 가정 위에 서 있습니다. 학습한 모델이 이 곡선을 그대로 따른다고 말할 근거는 없습니다. 보고서의 낙폭이 3.2~18.2 %에 머문 것을 보면 모델이 밝기 변화를 어느 정도 흡수하는 듯하지만, 흡수하는 크기는 보고서에서 읽을 수 없습니다. 이 곡선에서 기억해 둘 숫자는 세 개입니다.
0.43%
첫날 오검출 비율 (σ와 선 위치는 가정)
19.08%
조명이 5 % 줄었을 때 오검출 비율
8.82%
조명이 이만큼 밝아지면 긁힘의 절반이 통과
첫날의 0.43 %는 설비를 인수할 때 받아들일 만한 수준이지만, 같은 설비의 조명이 5 %만 늙어도 19.08 %가 됩니다. 밝아지는 쪽의 기준선 8.82 %는 조명을 교체하는 날 이야기입니다. 새 조명이 낡은 조명의 마지막 출력보다 그만큼 밝게 나오면 긁힘의 절반이 통과합니다. 조명 교체는 가장 값비싼 정비이면서 가장 조용하게 판정선을 옮기는 일입니다. 저는 선을 고정하든 조명에 묶든 조명이 얼마나 움직였는지부터 알아야 한다고 봅니다.
판정선을 기준 타일에 묶고 노출로 영점을 되돌리는 법
선을 조명에 묶는 방법은 간단합니다. 판정선을 절대값 129.5로 못 박는 대신 타일 밝기의 배수로 정해 둡니다. 첫날 타일이 90이고 선이 129.5였다면 비율은 1.439이고, 타일이 81로 내려온 날 선은 116.55로 따라 내려갑니다. 정상 면이 126으로 내려와도 선과의 거리가 9.45로 남아서, 조명이 10 % 줄어든 날에도 오검출은 0.91 %에 머뭅니다.
다만 선이 따라 내려오는 동안 두 분포 사이의 간격은 줄어듭니다. 조명이 7.5 % 줄면 간격은 21에서 19.43으로, 10 % 줄면 18.9로 좁아지고 오검출은 0.76 %, 0.91 %로 천천히 오릅니다. 보정은 평균을 제자리에 돌려놓을 뿐, 잃어버린 대비 폭과 신호 대 잡음비를 되살리지는 못해요. 소프트웨어가 조명의 늙음을 메워 주는 구간에는 한계가 있고, 제 판단으로는 그 한계 안에서 버티는 동안 조명을 손볼 일정을 잡아야 합니다.
노출을 늘려 영점을 되돌리는 방법도 있습니다. 조명이 7.5 % 줄었다면 노출을 1.0811배로 올리면 되고, 100 μs 스트로브7 펄스라면 108.1 μs가 됩니다(펄스 폭은 가정). 빛의 양 자체를 되돌리니 신호 대 잡음비도 함께 돌아와서 선을 묶는 방법보다 한 걸음 더 나아갑니다. 한계는 펄스 폭을 늘릴 수 있는 만큼, 그리고 화면의 가장 밝은 자리가 255에 닿지 않는 만큼입니다.
이 모든 장치가 검사대 위에서 어떻게 놓이는지 그려 두면 순서가 보입니다. 카메라와 돔 조명은 부품 위에 고정되고, 시야 한구석에 타일이 서며, 판정 신호는 컨트롤러에서 합격·불합격 표시등으로 흘러갑니다.

그림 속 렌즈는 부품 윗면에서 WD8 166.5 mm 위에 걸립니다. 시야 80 mm, 가로 4,096 px, 화소 3.45 μm, 렌즈 25 mm는 모두 계산을 위한 가정이고, 시야를 픽셀 수로 나누면 한 칸이 19.53 μm9입니다. 세 칸을 채워야 보였다고 인정하는 제 기준으로는 58.6 μm보다 작은 긁힘이 이 셋업의 몫이 아닙니다. 166.5 mm는 렌즈 주평면에서 잰 값이어서, 렌즈 앞면에서 부품까지 실제로 비워 둘 거리는 제조사 사양서로 확인할 항목입니다.
무광 면이라 지금까지의 계산이 단순했습니다. 도금 단자처럼 광택이 있는 면에서는 난반사10와 정반사가 섞이고, 조명 출력이 바뀌면 반짝이는 자리도 함께 움직입니다. 타일 값이 10 % 내려갔다고 해서 부품 위 밝기가 같은 비율로 내려갔다고 단정하기 어렵습니다. 이런 재질은 샘플 테스트 전 확언 불가이고, 그전까지는 위의 곡선을 참고용으로만 봅니다. 여기까지의 계산을 사양서에 옮기면 세 줄로 줄어들고, 앞에서 가정한 시야와 카메라로 채운 값은 아래와 같습니다.
| 항목 | 기준값 | 조건·근거 | 풀어 쓰면 |
|---|---|---|---|
| ① 최소 불량 사이즈 | 58.6 μm | 3 px × 19.53 μm/px (시야 80 mm ÷ 4,096 px, 가정) | 0.06 mm 안쪽 긁힘은 세 칸을 채우지 못한다 |
| ② 광학 셋업 | 돔 조명, 25 mm 렌즈, WD 166.5 mm (확보 여부 확인 필요) | 센서 폭 14.13 mm(3.45 μm × 4,096 px), 배율 0.1766, WD = f × (1 + 1/배율), 주평면 기준 | 렌즈에서 부품까지 17 cm 가까이를 비워 두어야 한다 |
| ③ 알고리즘 파라미터 | 기준 타일 50×50 px, 판정선 = 타일 평균 × 1.439, 경보 0.24단계(0.171 %) | σ÷√2,500 = 0.08단계, 3σ = 0.24단계 (잡음 독립 가정) | 조명이 0.2 % 움직이면 알림이 켜진다 |
58.6 μm보다 작은 긁힘은 이 셋업이 세 칸으로 보지 못하고, 타일에 묶은 판정선은 조명이 0.2 %만 움직여도 알림을 울립니다. 셋째 줄은 셋 중에서 가장 값싸면서 가장 자주 빠지는 줄입니다. 제 기준으로 사양서의 첫 줄에는 불량의 크기를, 둘째 줄에는 조명 변화의 허용 폭을 적습니다. AI 이상 탐지 모델을 올리는 날에도 같은 줄이 먼저 있어야 합니다. 모델이 점수를 얼마나 잃을지는 학습할 때의 조명과 지금의 조명이 얼마나 다른지에 달려 있는데, 그 차이를 적어 둔 기록이 없으면 낙폭을 설명할 방법이 없습니다.
점수를 올리려 모델을 키우기 전에 효율 점수부터 계산한다
같은 보고서는 효율을 순위에 넣는 점수도 제안했습니다. 효율 점수 E11는 성능 q, 처리 속도 τ, 메모리 사용 μ, 전력 π를 곱한 뒤 네제곱근을 취합니다. 속도는 초당 30장을 기준으로 t÷(t+30)으로, 메모리는 64 GB, 전력은 56 W를 한도로 정규화하죠. 30장을 넘긴 속도에는 보상이 천천히 붙습니다. 초당 30장이면 τ가 0.5이고, 60장이면 0.667, 120장이면 0.8입니다.
두 시스템을 가정해 계산하면 이 점수의 성격이 보입니다. A는 점수 0.57로 가장 높지만 초당 8장, 메모리 40 GB, 전력 45 W를 쓰는 앙상블이고, B는 점수 0.50의 가벼운 모델로 초당 45장, 메모리 6 GB, 전력 12 W를 씁니다. 숫자는 모두 가정이고 q는 SegF1을 100으로 나눈 값으로 놓았습니다. E는 A가 0.307, B가 0.680으로 B가 2.2배 앞서요. 제 계산으로는 성능이 0.07 낮아도 속도와 자원이 그만큼 값을 합니다.
여기에 조명 이야기를 붙이면 갈림길이 보입니다. 조명이 흔들려서 잃는 점수를 큰 모델이 흡수하도록 두면 A 같은 시스템으로 가야 하고, 조명 변화를 기준 타일과 노출 보정으로 좁혀 두면 B 같은 가벼운 모델도 학습한 조명 안에서 일하게 됩니다. 제 눈에는 조명을 고정하는 쪽이 값이 싸 보입니다. 반대쪽이 유리한 조건도 있습니다. 검사대마다 조명 사양이 달라 현장에서 조명을 맞출 수 없다면 학습 사진에 여러 조명 조건을 넣는 일이 먼저이고, 그 효과는 샘플 테스트 전 확언 불가입니다.
조명 기록을 맡은 사람과 교체 비용을 내는 쪽
이 계산을 일로 삼는 사람이 머신비전 엔지니어입니다. 이 일에 처음 들어서는 분께는 모델 이름을 외우기 전에 기준 타일 한 장과 밝기 기록표를 만들어 보시길 권합니다. 조명이 얼마나 흔들리는지를 숫자로 가진 사람과 못 가진 사람은 같은 점수 하락 앞에서 다른 질문을 하거든요. 앞사람은 조명이 몇 % 움직였는지 묻고, 뒷사람은 모델을 다시 학습해야 하는지부터 묻습니다.
설비에 돈을 대는 쪽에서 보면 같은 계산이 유지보수 항목을 바꿉니다. 조명 교체 주기와 교체 직후 판정선을 다시 잡는 절차는 견적서에 한 줄로 들어가는데, 그 줄이 빠진 설비는 교체한 날 긁힘을 통과시키는 위험을 떠안습니다. 이 글은 기술 설명이며 투자 권유가 아닙니다. 자세한 내용은 면책조항을 참고하세요.
현장 노트
기계식 필름 카메라의 셔터막은 세월이 지나면 표시한 속도와 어긋납니다. 숫자판은 1/500초를 가리켜도 막이 실제로 달리는 시간은 달라서, 필름이 받는 빛의 양이 표시와 다르게 변합니다. 조명도 같아서 컨트롤러 설정값은 그대로인데 출력만 내려앉습니다. 새 셋업이라면 저는 첫날 타일 값을 먼저 적어 두고, 값이 그 97 % 아래로 내려오는 3 % 선에서 정비 일정을 잡습니다. 이 선에서 고정 판정선의 오검출은 5.76 %이므로 계산상 더 기다릴 이유가 없습니다.
현장 체크포인트
타일 값을 첫날에 적어 두었다면 다음은 설치 조건을 하나씩 지우는 일입니다.
- 렌즈 주평면에서 부품 윗면까지 WD 166.5 mm가 치구 높이와 돔 조명 높이를 더하고도 확보되는가? (조명과 손이 들어갈 틈이 남는지)
- 기준 타일이 시야 한구석에 들어오고, 부품이 바뀌어도 같은 자리에 같은 면으로 서 있는가? (타일에 먼지가 쌓이거나 색이 변하지 않는지)
- 설비를 처음 켜는 날 타일 평균과 정상 면 평균을 같은 사진에서 적어 두었는가? (이후 모든 비교의 영점이 되는 값인지)
- 조명을 교체하거나 설정을 바꾼 직후에 판정선을 다시 잡는 절차가 정해져 있는가? (새 조명이 밝게 나오는 날 긁힘이 통과하지 않는지)
- 검사할 면이 무광인지 광택 도금인지 먼저 적었는가? (광택 면은 샘플 사진으로 확인하기 전에는 위 곡선을 쓸 수 없는지)
- 학습에 쓴 사진과 현장의 타일 값이 몇 % 다른지 기록했는가? (모델이 맞닥뜨린 조명 차이를 숫자로 말할 수 있는지)
자주 묻는 질문
기준 타일은 어떤 것이 좋은가요?
표면이 변하지 않고 반짝이지 않는 중간 회색 계열이 무난합니다. 정상 면과 비슷한 밝기로 찍히면 같은 노출 구간에서 읽을 수 있고, 너무 밝으면 조명이 올라갈 때 255에 닿아 값이 잘리기 때문입니다.
조명이 어두워지는 쪽과 밝아지는 쪽 중 어디가 더 위험한가요?
이 가정에서는 어두워질 때 7.5 %에서 정상 화소의 절반이 불량이 되고, 밝아질 때 8.82 %에서 긁힘의 절반이 통과합니다. 어두워지는 쪽은 오검출이 눈에 띄지만, 밝아지는 쪽은 통과만 늘어서 기록이 없으면 늦게 드러납니다.
용어 풀이
- [1] 반사율 reflectance
표면에 닿은 빛 가운데 다시 튕겨 나오는 비율입니다. 하얀 종이는 높고 검은 천은 낮아서, 같은 조명 아래에서도 카메라에 찍히는 밝기가 달라집니다. ↩ - [2] 8비트 밝기 눈금 8-bit gray level
화소 하나의 밝기를 0(완전 검정)부터 255(완전 하양)까지 256단계로 적은 값입니다. 본문의 140이나 119는 모두 이 눈금 위의 숫자입니다. ↩ - [3] VAND 4.0 챌린지 VAND 4.0 Challenge
산업·유통 현장의 이상 탐지 방법을 같은 시험지로 겨루게 한 대회입니다. 정답을 가린 시험 사진으로 채점합니다. ↩ - [4] 이상 탐지 anomaly detection
정상 사진만 보고 학습한 뒤 정상에서 벗어난 자리를 찾아내는 방식입니다. 불량 사진을 모으기 어려운 라인에서 많이 씁니다. ↩ - [5] SegF1 segmentation F1
모델이 불량이라고 칠한 화소와 실제 불량 화소가 얼마나 겹치는지를 한 숫자로 줄인 값입니다. ↩ - [6] 표준편차 σ standard deviation
같은 면을 연달아 찍었을 때 값이 평균 둘레에서 흩어지는 폭입니다. 본문에서는 4단계로 가정했습니다. ↩ - [7] 스트로브 strobe
셔터가 열린 짧은 순간에만 조명을 번쩍 켜는 방식입니다. 펄스 폭을 늘리면 사진이 밝아집니다. ↩ - [8] WD working distance, 작동 거리
렌즈에서 검사할 부품 윗면까지의 거리입니다. 본문에서는 렌즈 주평면 기준으로 계산했고, 제조사가 쓰는 기준면은 사양서로 따로 확인해야 합니다. ↩ - [9] μm 마이크로미터, micrometre
1 mm를 1,000으로 나눈 길이입니다. 자의 가장 작은 눈금 한 칸을 천 조각으로 나눈 크기입니다. ↩ - [10] 난반사와 정반사 diffuse and specular reflection
난반사는 거친 면에서 빛이 사방으로 흩어지는 반사이고, 정반사는 매끈한 면에서 빛이 들어온 각도 그대로 한쪽으로 튀는 반사입니다. 카메라가 정반사 방향에 놓이면 그 자리가 하얗게 날아갑니다. ↩ - [11] 효율 점수 efficiency score E
성능, 처리 속도, 메모리, 전력을 곱해 한 숫자로 만든 점수입니다. ↩
참고 자료
- L. Heckler-Kram 외, Detecting Defects that Matter: An Application-Driven Benchmark for Anomaly Detection in Manufacturing and Retail Logistics (VAND 4.0 Challenge), arXiv:2610.04392v1, 2026년 10월 3일 (표 1, 3.1절, 3.2절, 4.1절)
- 특허 US 6,445,812 B1, Siemens Corporate Research Inc., Illumination compensation system for industrial inspection, 2002년 9월 3일 등록
- 계산식: 오검출 비율 = Φ((T − 140 × (1 − d)) ÷ σ), 미검출 비율 = 1 − Φ((T − 119 × (1 + d)) ÷ σ), T = 129.5, σ = 4, Φ는 표준정규분포 누적함수, 노출 보정 배수 = 1 ÷ (1 − d), 기준 타일 감도 = 3 × σ ÷ √(타일 화소 수), 효율 점수 E = (q × τ × (1 − μ) × (1 − π))^(1/4), τ = t ÷ (t + 30)


