움직이는 부품은 빛이 켜진 시간으로 멈춰 찍는다
LIGHTING
움직이는 부품을 멈춰 세우는 것은 노출 시간보다 빛이 켜진 시간입니다. 1,000 mm/s에서 블러를 0.5 px 아래로 두려면 빛은 12.25 μs 안에 꺼져야 합니다.
시야 60 mm, 24.5 μm/px 셋업에서 허용 블러로 펄스 폭을 역산하고, 오버드라이브의 한계와 사라진 빛 에너지를 조리개와 배치로 되찾는 길을 계산했습니다.
읽는 시간 약 12분
커넥터를 실은 지그가 1,000 mm/s로 카메라 아래를 지나가면, 금속 핀 끝은 영상에서 이동 방향으로 길게 끌린 모션 블러(motion blur)1가 됩니다. 노출을 줄이면 어두워지고, 어두워서 게인(gain)2을 올리면 잡음이 결함처럼 보입니다. 광택 있는 핀과 무광 솔더마스크가 한 화면에 섞여 있으니 노출 하나로 양쪽을 맞추기도 어렵습니다. 그렇게 고른 절충값은 라인 속도가 조금만 올라가도 다시 무너집니다.
블러는 결함의 윤곽을 이동 방향으로 늘여 콘트라스트를 묽게 만듭니다. 블러 폭이 결함 크기에 가까워지면 80 μm 남짓한 핀 끝 찍힘은 바탕과 섞여 통과되고, 그걸 막으려고 임계값을 낮추면 번진 정상 가장자리가 과검출로 쏟아집니다. 어느 쪽이든 검사 결과는 라인 속도를 따라 흔들리는 값이 되고 맙니다.
해법은 빛이 켜져 있는 시간으로 셔터를 대신하는 것입니다. 조명을 수 μs 폭의 펄스로 켜는 스트로브(strobe)3를 쓰면, 카메라 노출 창이 더 길어도 상이 맺히는 시간은 펄스 폭뿐입니다. 짧아진 만큼 줄어드는 빛은 LED를 정격보다 높은 전류로 순간 구동하는 오버드라이브(overdrive)4로 메웁니다. 저는 시야 60 mm, 1,000 mm/s 라인을 정해 두고 블러 px = 속도 × 펄스 폭 ÷ 화소 분해능이라는 한 줄에서 계산을 시작했습니다.
블러는 속도와 빛이 켜진 시간의 곱이다
모션 블러의 길이는 부품의 이동 속도와 빛이 들어오는 시간을 곱한 값입니다. 이 길이를 화소 분해능으로 나누면 영상에서 몇 px로 번지는지가 나옵니다. 블러가 0.5 px 이하면 가장자리의 가파름이 멈춰 있을 때와 거의 구별되지 않고, 1 px를 넘으면 가장자리 폭이 눈에 띄게 넓어집니다. 제 기준은 0.5 px입니다.
2,448 × 2,048 px 센서에 16 mm F/5.6 렌즈로 가로 60 mm를 보면 화소 하나가 24.5 μm입니다(가정). 연속 조명에 노출 100 μs를 쓰면 블러는 1,000 mm/s × 100 μs = 100 μm, 4.1 px이고, 최소 결함 80 μm는 3.3 px라 블러가 결함보다 깁니다. 블러를 0.5 px, 곧 12.25 μm 아래로 두려면 빛은 12.25 μs 안에 꺼져야 하고, 여유를 두어 10 μs로 정하면 블러는 10 μm, 0.41 px가 됩니다. 블러가 열 배 줄어듭니다.
필름 카메라의 셔터를 1/60초로 열어 두고 어두운 방에서 플래시를 터뜨리면, 필름에는 섬광이 지나간 짧은 순간만 남습니다. 돌아가는 선풍기 날개가 멈춘 듯 찍히는 것도 그래서예요. 스트로브도 같은 원리라, 카메라의 노출 창은 펄스를 감싸 주기만 하면 되고 실제 셔터 노릇은 펄스 폭이 맡습니다. 그래서 저라면 사양서 첫 줄에 노출 시간보다 허용 블러 px를 적습니다.
전류를 올리는 한계는 평균 발열보다 펄스 한 발에 있다
펄스를 10 μs로 줄이면 빛이 모자라고, 오버드라이브가 그 부족분을 전류로 메웁니다. LED의 발열 한계는 흔히 평균 전력, 곧 피크 전력 × 듀티비(duty cycle)5로 설명됩니다. 이동 50 mm마다 한 장씩 초당 20장을 찍으면(시야 60 mm라 10 mm씩 겹침) 10 μs 펄스의 듀티비는 10 μs × 20 = 200 μs/s, 0.02 %입니다. 정격의 4배 전류로 몰아도 평균 전류는 정격 연속 구동의 0.08 % 수준이라 평균 발열은 거의 문제가 되지 않습니다.
제약은 다른 곳으로 옮겨 갑니다. LED 칩과 드라이버가 견디는 피크 전류, 펄스 한 발 동안 오르는 접합부 온도, 드라이버의 전류 상승 시간(rise time)6입니다. SVS-Vistek의 기술 자료도 짧은 펄스라면 LED를 정격보다 훨씬 높은 전류로 구동할 수 있지만 수명에 나쁜 영향을 줄 수 있으니 켜진 시간을 되도록 짧게 하라고 적고 있습니다. 게다가 LED 광출력은 높은 전류에서 증가율이 둔해져, 전류 4배가 빛 4배를 보장하지 않습니다.
상승 시간이 1 μs인 드라이버라면 10 μs 펄스의 10 %가 전류가 오르는 구간에 쓰이고, 펄스를 더 줄일수록 이 몫이 커집니다. 저라면 셋업 첫날 조명 전류 파형을 오실로스코프로 찍어 실제로 빛이 나는 시간을 확인하고, 피크 전류와 최대 펄스 폭, 상승 시간을 듀티비와 함께 제조사의 펄스 정격 자료에 대어 봅니다. 듀티비만 보고 안심하면 칩 열화라는 느린 고장으로 돌아오거든요.
사라진 빛 에너지 60 %를 되찾는 순서
한 장에 쌓이는 빛 에너지는 대략 광출력 × 켜진 시간에 비례합니다. 연속 조명 1배로 100 μs를 비추던 구성을 4배 오버드라이브 10 μs로 바꾸면 에너지는 (4 × 10) ÷ (1 × 100) = 0.4배로 떨어지고, LED 효율 저하까지 치면 실제로는 더 낮을 수 있습니다. 부족분을 게인으로 채우면 신호와 잡음이 함께 커져 콘트라스트 대 잡음비는 나아지지 않습니다. 긴 노출의 블러를 소프트웨어 디블러링으로 되돌리는 방법도 잡음을 키우는 문제가 같아, 조명 셋업의 부족을 다 덮지 못합니다.
제 순서로는 조리개가 먼저입니다. F/8에서 F/5.6으로 한 단 열면 모이는 빛이 (8 ÷ 5.6)² = 2.04배가 되어 에너지가 0.82배까지 돌아옵니다. 대가는 피사계 심도(depth of field)7입니다. 허용 착란원을 화소 2칸(6.9 μm)으로 잡으면 이 배율에서 심도는 F/8일 때 6.4 mm, F/5.6일 때 4.5 mm로 줄어드니, 핀 높이와 지그 높이의 흔들림이 4.5 mm 안에 드는지 함께 확인해야 합니다.
0.41px
1,000 mm/s, 펄스 10 μs에서 생기는 블러
0.82×
4배 오버드라이브 10 μs에 조리개 한 단을 더한 빛 에너지
4.5mm
F/5.6에서 착란원 2 px 기준 피사계 심도
남은 1.22배는 조명을 부품에 더 가까이 두거나 대수를 늘려서 확보하고, 게인은 마지막 수단으로 남겨 둡니다. 조명을 가까이 두면 WD 안에 바 조명과 차광 후드가 함께 들어가야 하니 공간 계산이 같이 따라오죠. 펄스 폭을 줄여 얻은 선명도와 잃은 빛을 같은 표에서 에너지 비율로 적어 두면, 부족분이 조리개로 닫히는지 조명을 더 사야 하는지가 설계 단계에서 갈립니다.
노출 창 20 μs 안에 10 μs 펄스를 앉히기
카메라는 모든 화소가 같은 순간에 노출을 시작하고 끝내는 글로벌 셔터(global shutter)8 방식을 씁니다. 노출 창은 20 μs로 두어 10 μs 펄스를 앞뒤 여유와 함께 감쌉니다. 트리거 신호와 실제 발광 사이의 흔들림인 트리거 지터(trigger jitter)9가 1 μs라면 그동안 부품이 움직이는 거리는 1 μm, 0.04 px라 위치 오차로는 무시할 만합니다. 노출 창이 짧으니 주변광이 쌓일 시간도 20 μs뿐이지만, 차광 후드로 바깥 빛을 막아 두는 편이 프레임마다 밝기를 고르게 지킵니다.
아래 그림은 정격 전류의 긴 연속 조명과 4배 오버드라이브의 짧은 펄스를 같은 노출 창 위에 겹쳐 그린 것입니다. 같은 가장자리가 연속 조명에서는 4 px 넘게 끌리고, 펄스에서는 한 칸 안에서 끊깁니다.

계산이 맞는지는 실제 속도로 확인합니다. 교정 패턴을 1,000 mm/s로 통과시키며 가장자리 밝기가 10 %에서 90 %로 오르는 폭을 재고, 멈춰 있을 때보다 0.5 px 넘게 넓어지지 않는지 봅니다. 넓어졌다면 펄스 폭보다 전류 파형의 꼬리를 먼저 의심합니다. 드라이버가 끌 때 전류가 천천히 빠지면 빛이 펄스 뒤로 길게 남으니까요.
핀 끝 80 μm에서 노출 창 20 μs까지, 사양서 한 장
계산을 사양서로 옮기면 잡을 결함, 조명과 동기, 렌즈와 WD(working distance)10, 블러 검증과 판정 기준이 한 표에 모입니다. WD는 렌즈 앞면에서 부품까지의 거리로, 바 조명과 차광 후드가 그 사이에 들어가야 합니다.
| 항목 | 기준값 | 조건·근거 | 풀어 쓰면 |
|---|---|---|---|
| ① 최소 불량 사이즈 · 핀 끝 찍힘 | 80 μm 이상 | 24.5 μm/px에서 3.3 px. 설계 가정 | 화소 세 칸 남짓한 흠 |
| ① 최소 불량 사이즈 · 실크 번짐과 솔더 볼 | 실크 번짐 100 μm, 솔더 볼 지름 120 μm 이상 | 4.1 px, 4.9 px. 설계 가정 | 조금 더 큰 얼룩과 알갱이 |
| ② 광학 셋업 · 조명 | LED 바 조명 2대, 펄스 10 μs, 정격 4배 오버드라이브 | 허용 전류와 펄스 폭은 제조사 펄스 정격으로 확인 | 짧고 세게 한 번 켬 |
| ② 광학 셋업 · 동기 | 초당 20장, 듀티비 0.02 %, 노출 창 20 μs, 트리거 지터 1 μs 이하 | 지터 1 μs × 1,000 mm/s = 1 μm(0.04 px) | 셔터와 섬광의 박자를 맞춤 |
| ② 광학 셋업 · 렌즈와 센서 | 16 mm F/5.6, 글로벌 셔터 2,448 × 2,048 px, 24.5 μm/px | 배율 0.141, 얇은 렌즈 물체거리 129.7 mm, 심도 4.5 mm(착란원 2 px 가정) | 가로 60 mm를 한 장에 |
| ② 광학 셋업 · WD | WD 110 mm 이상 확보(설계 가정) | 렌즈 앞면 기준. 바 조명과 차광 후드 간섭 포함 실측 | 조명과 후드가 렌즈 아래에 들어가야 함 |
| ③ 알고리즘 파라미터 · 블러 허용 | 0.5 px 이하 (10 μs에서 0.41 px) | 연속 조명 100 μs라면 4.1 px | 끌림을 반 칸 아래로 |
| ③ 알고리즘 파라미터 · 블러 검증 | 이동 중 가장자리 10~90 % 폭이 정지 대비 0.5 px 이하로 증가 | 교정 패턴을 실제 속도로 통과시켜 측정 | 달릴 때와 멈췄을 때를 비교 |
| ③ 알고리즘 파라미터 · 밝기와 판정 | 기준판 평균 밝기로 프레임별 게인 보정(상한 설정), 바탕 대비 3σ 초과이고 면적 6 px 이상 | 80 μm 결함 면적 약 10.7 px. 펄스 사이 광량 편차 추적 | 섬광마다 밝기를 맞추고 흠을 찾음 |
표의 첫 줄과 블러 허용 줄을 나란히 보면 이 구성의 성패가 어디서 갈리는지 드러납니다. 최소 결함 80 μm는 3.3 px로 검출 하한을 겨우 넘는데, 연속 조명 100 μs의 블러 4.1 px는 결함보다 커서 결함을 원리적으로 지워 버리고, 10 μs 펄스의 블러 0.41 px는 결함 크기의 8분의 1에 그칩니다. 그 대가인 빛 에너지 0.4배는 조리개 한 단으로 0.82배까지 돌아오니, 남은 1.22배를 조명 배치로 닫을 수 있는지가 마지막 관문입니다.
스트로브가 맞지 않는 공정도 있습니다. 촬영하는 순간 부품이 멈추는 인덱스 방식이라면 블러가 원리적으로 없으니, 연속 조명과 긴 노출이 빛의 양과 안정성 모두에서 낫고 오버드라이브로 칩을 몰아붙일 이유도 없습니다. 속도가 느리거나 화소 분해능이 거칠어 속도 × 노출이 0.5 px 아래로 나오는 구성이라면 동기 배선과 드라이버를 더하는 수고가 이득으로 돌아오지 않습니다. 프레임 주기가 아주 짧아 듀티비가 커지면 평균 발열이 한계에 다가가 오버드라이브 배율을 낮춰야 하니, 조명을 계속 켜 두는 라인스캔 구조가 나을 수 있습니다. 표면 반사율과 LED 효율 저하 정도에 따라 필요한 오버드라이브 배율이 달라지므로, 실제 빛의 여유는 샘플 테스트 전 확언 불가입니다.
속도와 펄스 폭, 화소 분해능을 한 줄의 곱셈으로 묶는 계산은 고속 검사를 맡으면 하루에도 몇 번씩 하게 되니, 이 곱셈부터 손에 익혀 두시길 권합니다. 카메라 견적을 받는 쪽에서는 최소 노출 시간보다, 실제 라인 속도에서 가장자리 폭이 몇 px 늘어나는지와 조명 전류 파형을 잰 기록이 있는지를 묻는 편이 낫습니다. 이 글은 기술 설명이며 투자 권유가 아닙니다. 자세한 내용은 면책조항을 참고하세요.
현장 노트
이동 중인 커넥터 핀 끝을 멈춘 듯 찍어야 한다면, 저는 노출을 줄이고 게인을 올리기 전에 허용 블러와 펄스 폭부터 계산합니다. 10 μs 펄스라도 드라이버의 상승과 하강이 펄스의 상당 부분을 먹으면 계산만큼 밝지도, 계산만큼 짧지도 않을 수 있기 때문입니다. 그래서 셋업 첫 단계에서 조명 전류 파형을 찍어 실제 발광 시간을 확인하고, 교정 패턴의 가장자리 폭이 이동 중에 0.5 px 넘게 늘지 않는지 잰 뒤에 임계값을 잡습니다. 조리개를 바꾸면 심도 4.5 mm 안에 핀 높이가 드는지도 다시 봅니다.
현장 체크포인트
펄스 폭과 전류 파형, 심도를 확인했다면, 아래 질문으로 나머지를 점검합니다.
- WD 110 mm 이상이 바 조명과 차광 후드까지 넣어 실측으로 확보되는가? (렌즈와 부품 사이에 조명과 후드가 들어가는지)
- 대상물의 표면 재질과 반사율을 먼저 확인했는가? (광택 금속 핀과 무광 솔더마스크는 같은 펄스에서도 필요한 빛이 다름)
- 허용 블러(px)와 이동 속도로 펄스 폭을 역산해 사양서에 적었는가? (이 셋업에서 12.25 μs 이하)
- 피크 전류, 최대 펄스 폭, 드라이버 상승 시간을 듀티비와 함께 제조사 정격으로 확인했는가? (평균 발열만 보지 않았는지)
- 조명 전류 파형을 실제로 재서 유효 펄스 폭을 확인했는가? (오르고 내리는 구간은 빛 손실이자 블러)
- 조리개를 연 뒤 피사계 심도가 핀과 지그 높이 편차를 덮는가? (F/5.6에서 4.5 mm)
자주 묻는 질문
롤링 셔터 카메라로도 스트로브를 쓸 수 있나요?
롤링 셔터는 행마다 노출이 조금씩 늦게 시작해서, 짧은 섬광 한 번으로 화면 전체를 멈추려면 모든 행이 동시에 노출 중인 구간에 펄스를 넣어야 합니다. 그 구간을 만들려면 노출 창을 행 읽기 시간보다 길게 잡아야 하고, 그만큼 주변광이 오래 쌓이니 차광이 더 중요해집니다. 카메라마다 이런 동작을 지원하는 모드가 다르니 사양서의 트리거 모드 항목부터 확인합니다.
오버드라이브가 LED 수명을 줄이나요?
SVS-Vistek 자료도 수명에 나쁜 영향이 있을 수 있다고 적고, 켜진 시간을 되도록 짧게 하라고 권합니다. 얼마나 줄어드는지는 제조사의 펄스 정격과 사용 조건에 달려 있어 일반론으로 답하기 어렵습니다. 대신 프레임마다 기준판 평균 밝기를 기록해 두면, 같은 전류에서 밝기가 서서히 떨어지는 흐름을 칩 열화의 신호로 일찍 잡을 수 있습니다.
용어 풀이
- [1] 모션 블러 motion blur
노출되는 동안 대상이 움직여 영상이 이동 방향으로 끌리는 번짐입니다. 길이는 속도와 빛이 켜진 시간의 곱입니다. ↩ - [2] 게인 gain
센서 신호를 전기적으로 키우는 배율입니다. 신호와 잡음을 함께 키워 어두운 영상을 밝게 보이게만 합니다. ↩ - [3] 스트로브 strobe lighting
카메라 노출에 맞춰 조명을 아주 짧게 한 번 켜는 방식입니다. 빛이 켜진 시간이 사실상 셔터 시간이 됩니다. ↩ - [4] 오버드라이브 overdrive
LED를 짧은 순간 정격보다 높은 전류로 구동해 순간 밝기를 올리는 방법입니다. 펄스 사이에 식는 시간이 있어야 합니다. ↩ - [5] 듀티비 duty cycle
전체 시간 가운데 켜져 있는 시간의 비율입니다. 초당 20번 10 μs씩 켜면 0.02 %입니다. ↩ - [6] 상승 시간 rise time
드라이버가 전류를 목표값까지 끌어올리는 데 걸리는 시간입니다. 펄스가 짧을수록 이 시간이 차지하는 몫이 커집니다. ↩ - [7] 피사계 심도 depth of field
초점이 맞은 것으로 보이는 앞뒤 거리의 범위입니다. 조리개를 열수록 좁아집니다. ↩ - [8] 글로벌 셔터 global shutter
센서의 모든 화소가 같은 순간에 노출을 시작하고 끝내는 방식입니다. 움직이는 대상을 한 순간으로 담기 좋습니다. ↩ - [9] 트리거 지터 trigger jitter
트리거 신호와 실제 동작 사이의 시간이 매번 조금씩 달라지는 흔들림입니다. 움직이는 대상에서는 위치 오차로 바뀝니다. ↩ - [10] WD working distance, 작동 거리
렌즈 앞면에서 검사할 면까지의 거리입니다. 조명과 차광 후드가 이 사이에 들어가야 합니다. ↩
참고 자료
- SVS-Vistek 기술 자료, Is there a reason for strobe controllers? (짧은 펄스로 LED를 정격보다 높은 전류로 구동하는 원리, 수명 영향과 켜진 시간을 짧게 하라는 권고, 노출 동기와 전류 제어)
- 계산식: 블러(px) = 속도 × 펄스 폭 ÷ 화소 분해능, 허용 펄스 폭 = 허용 블러 × 화소 분해능 ÷ 속도, 듀티비 = 펄스 폭 × 초당 장수, 빛 에너지 비 = (전류 배율 × 펄스 폭) ÷ (기준 배율 × 기준 노출), 조리개 한 단의 빛 = (F1 ÷ F2)², 피사계 심도 ≈ 2 × F수 × 착란원 × (1 + m) ÷ m², 지터 위치 오차 = 속도 × 지터, 배율 m = 센서 폭 ÷ 시야, u = f × (1 + 1/m)
함께 읽으면 좋은 글 — 고속 검사 라인에서 프레임레이트와 조명이 충돌하지 않으려면 · 두꺼운 부품의 실루엣 치수 오차는 백라이트 각도에서 나온다 · 포토메트릭 스테레오는 움직이는 부품에서 정지 조건을 0.5 ms로 옮긴다


