평균 지연이 마감 안에 있으면 안전한가 — 엣지 비전 검사의 지연 예산을 p99로 분해하기
EDGE AI / ALGORITHM
엣지 비전 검사기를 도입할 때 가장 먼저 보고되는 숫자는 대개 “평균 추론 시간”입니다. 벤치마크 화면에 9 ms가 찍히면 검사 사이클은 충분히 빠르다고 판단하고 다음 단계로 넘어갑니다. 그러나 라인에서 판정 신호가 늦는 순간은 평균이 아니라 꼬리에서 옵니다. 트리거부터 배출 신호까지의 전체 경로 중 추론은 한 구간일 뿐이며, 나머지 구간의 흔들림은 벤치마크에 잡히지 않습니다.
이 상태를 방치하면 비용은 드물지만 치명적인 형태로 나타납니다. 판정 신호가 배출 지점 마감을 넘기면 해당 부품은 판정 결과와 무관하게 그대로 통과합니다. 1,000개 중 1개꼴로 늦는 시스템은 평균 지표로는 완벽해 보이지만, 그 1개가 불량이었다면 검사 공정은 기록만 남기고 불량을 유출한 셈입니다. 더 나쁜 경우 늦은 한 건이 대기열을 밀어 다음 부품들까지 연쇄적으로 늦게 만듭니다.
해법은 추론 모델을 더 빠르게 만드는 것보다 먼저, 노출 → 센서 판독 → 전송 → 전처리 → 추론 → 후처리 → 판정 신호의 7단계를 각각 측정하고, 단계별 예산을 평균이 아니라 최악값(p99) 기준으로 배분하는 것입니다. 그 위에 파이프라인 병렬화로 처리량을, 마감 여유율로 지연 상한을 따로 관리합니다.
라인이 기억하는 것은 평균 지연이 아니라 마감을 넘긴 단 한 번입니다.
1. 지연 예산은 추론 시간이 아니라 7단계의 합이다
Point. 엣지 검사의 지연을 논할 때 기준 구간은 “모델 입력에서 출력까지”가 아니라 “트리거 입력에서 판정 신호 출력까지”여야 합니다.
Reason. 라인이 요구하는 것은 부품이 배출 지점에 도달하기 전에 신호가 나오는 것입니다. 이 마감은 카메라 스테이션과 배출 지점 사이 거리를 부품 속도로 나눈 값으로 정해집니다. 그 안에는 노출과 센서 판독이라는 광학·센서 구간, 전송이라는 데이터 경로 구간, 전처리·추론·후처리라는 연산 구간, 그리고 운영체제가 디지털 출력을 내보내는 신호 구간이 모두 들어갑니다. 추론은 그중 한 칸이며, 흔들림이 가장 큰 칸이 아닌 경우도 많습니다.
Example. 설계 가정으로 부품 속도 300 mm/s, 카메라에서 배출 지점까지 18 mm인 고속 조립 라인의 PCB 검사를 보겠습니다. 마감은 18 ÷ 300 = 60 ms(계산값)입니다. 단계별 p50은 노출 0.03 ms, 판독 8 ms, 전송 12 ms, 전처리 3 ms, 추론 9 ms, 후처리 1 ms, 신호 출력 0.5 ms 등으로 합이 약 33.6 ms입니다. 평균만 보면 마감의 절반을 겨우 넘는 여유로운 시스템입니다. 노출 시간 30 µs에서 모션 블러는 300 mm/s × 30 µs = 9 µm로, 화소 분해능 20 µm/px 대비 0.45 px에 그칩니다.
Point. 따라서 설계 검토서의 첫 표는 모델 벤치마크가 아니라 7단계 타임스탬프 표여야 합니다. 부품 이송 기구의 제어 조건 자체는 별도 검토가 필요합니다. 이 글은 트리거 이후 판정 신호까지의 비전 측 경로만 다룹니다.
2. 평균이 아니라 p99로 예산을 배분해야 하는 이유
Point. 단계별 예산은 p50이 아니라 p99 실측값으로 채워야 하며, 그 합이 마감 안에 여유를 남겨야 합니다.

Reason. 각 단계의 분포는 좌우 대칭이 아닙니다. 전송은 버퍼 경합이나 재전송에서, 전처리와 추론은 메모리 할당과 연산기 경합에서, 신호 출력은 운영체제 스케줄링에서 오른쪽으로 긴 꼬리를 가집니다. 평균은 이 꼬리를 희석해 버립니다. 반면 불량 유출은 꼬리에서만 일어납니다. 단계별 p99를 단순 합산한 값은 실제 전체 p99보다 보수적인 상한이지만, 온도 상승이나 부하 급증처럼 여러 단계가 동시에 느려지는 상관 구간에서는 이 상한에 실제로 근접합니다.
Example. 같은 PCB 검사에서 p99 실측(설계 가정)은 전송 18 ms, 전처리 6 ms, 추론 15 ms, 후처리 3 ms, 신호 출력 3 ms로 늘어납니다. 판독 8 ms와 노출·트리거 지연을 더한 합은 약 53.1 ms입니다. 마감 60 ms 대비 여유는 6.9 ms, 여유율 11.5%로 설계 기준 10%를 겨우 넘습니다. p50 합 33.6 ms와 비교하면 꼬리가 약 19.5 ms를 차지하며, 그중 가장 큰 증가분은 추론이 아니라 전송(+6 ms)입니다.
Point. 예산 초과 대책의 우선순위는 “p50이 가장 큰 단계”가 아니라 “p99 − p50 차이가 가장 큰 단계”입니다. 모델 경량화보다 전송 버퍼와 스케줄링 정리가 먼저 효과를 내는 경우가 흔합니다.
지연 예산을 줄이는 첫 단추는 가장 느린 단계가 아니라 가장 많이 흔들리는 단계를 찾는 것입니다.
3. 파이프라인 병렬화는 처리량을 올리지만 지연은 줄이지 않는다
Point. 지연 마감과 처리 간격은 서로 다른 제약이며, 파이프라인 병렬화는 그중 처리 간격만 해결합니다.
Reason. 부품이 40 ms 간격으로 들어오는데 직렬 처리의 p99가 53.1 ms라면, 꼬리 이벤트가 생길 때마다 다음 부품의 처리가 밀립니다. 평균 33.6 ms는 간격 안에 있어도 꼬리가 대기열을 쌓고, 쌓인 대기열은 뒤따르는 부품의 지연을 연쇄적으로 늘립니다. 7단계를 “판독·전송”, “전처리·추론”, “후처리·신호”의 3개 스테이지로 묶어 동시에 돌리면, 처리 간격을 결정하는 것은 전체 합이 아니라 가장 느린 스테이지 하나가 됩니다.
Example. 스테이지별 p99는 판독·전송 26 ms, 전처리·추론 21 ms, 후처리·신호 6 ms입니다. 가장 느린 스테이지 26 ms가 부품 간격 40 ms보다 짧으므로 대기열은 쌓이지 않습니다. 그러나 한 부품이 트리거에서 신호까지 걸리는 시간은 여전히 약 53.1 ms입니다. 스테이지 사이에 버퍼 복사가 추가되면 오히려 조금 늘어날 수 있습니다. 병렬화 후에도 마감 여유율 계산은 그대로 다시 해야 합니다.
Point. 마감 직전까지 판정이 나오지 않는 경우를 위한 타임아웃 정책도 예산의 일부입니다. 마감 − 여유 시점까지 결과가 없으면 기본값을 불합격(NG)으로 두어 “늦은 판정 = 통과”가 되지 않게 하는 것이 유출을 막는 마지막 안전장치입니다. 소프트웨어 최적화만으로 광학 셋업의 결함, 예를 들어 노출이 길어 생긴 모션 블러를 덮을 수는 없다는 점도 함께 기억해야 합니다.
4. 핵심 골격 — 매칭표
| 구분 | 항목 | 사양 / 파라미터 | 근거·비고 |
|---|---|---|---|
| ① 최소 불량 사이즈 | PCB 솔더 브리지 | 폭 60 µm 이상 | 설계 가정. 20 µm/px에서 3.0 px 점유 |
| ① 최소 불량 사이즈 | 기판 표면 이물 | 직경 100 µm 이상 | 설계 가정. 5.0 px 점유 |
| ② 광학 셋업 | 조명 | 돔 확산 조명, 스트로브 30 µs, 트리거 동기 | 솔더 면 난반사 억제 목적. 모션 블러 9 µm(0.45 px, 계산값) |
| ② 광학 셋업 | 센서 | 2448 × 2048 px, 화소 피치 3.45 µm | 설계 가정. 센서 폭 8.45 mm(계산값) |
| ② 광학 셋업 | 렌즈 | 초점거리 25 mm | 배율 약 0.172×(센서 폭 ÷ FOV, 계산값) |
| ② 광학 셋업 | WD(작동 거리) | 160 mm 이상 확보 필수 | 박막 렌즈 근사 물체거리 약 170 mm(계산값). 돔 조명 높이 포함 실측 확인 |
| ② 광학 셋업 | FOV·화소 분해능 | FOV 49 mm × 41 mm, 20 µm/px | 49 mm ÷ 2448 px = 20.0 µm/px(계산값) |
| ③ 알고리즘 | 지연 마감 | 60 ms (18 mm ÷ 300 mm/s) | 설계 가정. 트리거 입력 → 판정 신호 출력 기준 |
| ③ 알고리즘 | 단계별 p99 합 | 53.1 ms, 여유율 11.5% | 여유율 10% 이상 유지 기준. 단계별 타임스탬프 10,000건 이상에서 산출 |
| ③ 알고리즘 | 파이프라인 | 3 스테이지, 최장 스테이지 p99 26 ms | 부품 간격 40 ms 미만이어야 대기열 누적 없음 |
| ③ 알고리즘 | 타임아웃 | 54 ms 시점 미판정 시 NG 출력 | 마감 60 ms − 여유 6 ms. “늦은 판정 = 통과” 차단 |
표 시사점. ①의 솔더 브리지 60 µm는 ②의 20 µm/px에서 3.0 px로 검출 하한에 걸쳐 있고, 스트로브 30 µs의 모션 블러 0.45 px는 이 3 px 안에서 허용 가능한 수준입니다. 그런데 지연 예산이 모자라 노출을 60 µs로 늘려 조명 출력을 낮추는 식으로 타협하면 블러가 0.9 px가 되어 3 px 결함의 엣지 콘트라스트를 직접 깎습니다. 지연 예산과 광학 분해능은 서로 독립이 아니라 노출 시간이라는 한 변수로 묶여 있습니다.
5. 반대 접근이 유리한 조건
- 마감이 부품 간격보다 훨씬 긴 경우: 배출 지점이 멀어 마감이 수백 ms 이상이면 p99 단계별 관리의 이득이 작습니다. 평균 기반 설계와 전체 구간 타임아웃 하나로 충분할 수 있습니다.
- 판정 결과를 즉시 쓰지 않는 샘플링 검사: 결과를 로그와 통계 관리에만 쓰는 오프라인 검사라면 지연보다 처리량과 정확도가 우선입니다. 배치 처리가 더 경제적입니다.
- 연산을 카메라 내부로 옮길 수 있는 단순 판정: 룰 기반 치수 판정처럼 연산이 가벼우면 전송 단계를 없애는 구조가 파이프라인 분할보다 꼬리를 더 크게 줄입니다.
솔더 표면처럼 난반사가 섞이는 재질은 조명 조건에 따라 필요한 노출과 전처리 부하가 달라지므로, 단계별 예산 수치는 샘플 테스트 전 확언 불가입니다.
현장 노트
고속 조립 라인에서 평균 판정 시간이 마감의 절반 수준인데도 하루 몇 건씩 판정 누락이 기록된 적이 있습니다. 모델을 먼저 의심했지만, 7단계마다 타임스탬프를 찍어 p99를 분리해 보니 꼬리의 대부분은 추론이 아니라 전송 버퍼 경합과 신호 출력 스케줄링에서 나오고 있었습니다. 스테이지를 3개로 나누고 마감 6 ms 전 타임아웃을 NG로 고정한 뒤에는 누락 기록이 사라졌습니다. 다만 같은 구성이 다른 기판과 조명 조건에서도 그대로 통할지는 실측 없이 단정하기 어렵다고 생각합니다.
현장 체크포인트
- WD 160 mm 이상이 실측으로 확보되는가 — 돔 조명 하우징 높이와 케이블 굴곡 반경을 포함해 확인할 것.
- 대상물 표면 재질과 반사율을 먼저 특정했는가 — 솔더 면의 난반사 정도에 따라 노출과 전처리 부하가 달라집니다.
- 트리거 입력부터 판정 신호 출력까지 7단계 타임스탬프를 모두 기록하고 있는가.
- 단계별 p99를 10,000건 이상의 연속 운전 데이터로 산출했는가 — 벤치마크 평균값은 예산 근거가 되지 않습니다.
- p99 합이 마감 대비 10% 이상 여유를 남기며, 가장 느린 파이프라인 스테이지가 부품 간격보다 짧은가.
- 마감 전 미판정 시 NG를 출력하는 타임아웃 정책이 신호 출력 단계에 구현되어 있는가.


