같은 알고리즘이 벤더의 랩에서는 99.2%를 기록했다. 여러분의 창고 현장에서 한 달, 가동률은 92%다. 누군가 숫자를 조작했다고 비난하기 전에 — 그 격차는 보통 알고리즘의 잘못이 아니다. 여러분의 창고와 그들의 랩은 같은 세상이 아니다.

랩은 어떤 모습인가? 균일한 조명, 깨끗한 배경, 포즈를 취한 화물, 고정된 카메라. 여러분의 창고는 어떤 모습인가? 아침부터 오후까지 변하는 천창의 글레어, 절반은 나간 조명관, 컨베이어 곳곳의 먼지, 모서리가 찌그러진 박스, 바코드에 비치는 테이프 반사, 잠깐 카메라를 가리는 작업자의 손. 알고리즘은 변하지 않았다. 세상이 변한 것이다.

그렇다면 그 7% 포인트는 도대체 어디로 사라진 걸까? 하나씩 살펴보자.

조명이 왜 무엇보다 큰 타격을 주는가? 창고의 빛은 가장 불합리한 변수다. 창가 컨베이어는 아침에는 순광, 오후에는 역광을 받는다. 흐린 날과 맑은 날은 완전히 다른 밝기다. 비전 시스템은 조명 드리프트를 싫어한다 — 모델은 균일한 조명으로 학습했는데, 빛이 바뀌면 특징이 맞지 않는다. 해결책은 화려하지 않지만 효과가 있다. 카메라에 전용 광원을 달아라. 링 라이트나 바 라이트다. 그리고 환경광을 식에서 제거하라. 모델이 '적응할' 거라 기대하지 마라. 빛을 물리적으로 제어하는 것이 어떤 알고리즘보다 낫다. 비 오는 날 정확도가 5포인트 떨어진 프로젝트를 본 적이 있다. 링 라이트를 단 뒤 변동은 거의 사라졌다.

먼지는 모두가 잊는 변수다. 만성적이다 — 렌즈와 조명 하우징에 막이 쌓이고, 화질은 매일 조금씩 떨어진다. 해결책은 대단한 게 아니다. 렌즈 청소를 일일 체크리스트에 넣어라. 주 1회 닦는 것이 모델 업그레이드보다 낫다.

화물 자체는 어떤가? 랩의 화물은 새것이고, 반듯하고, 라벨은 똑바로 붙어 있다. 실제 화물은? 찌그러진 모서리, 비뚤어진 라벨, 바코드에 반사되는 테이프, 모든 것을 숨기는 검은 폴리백. 변형과 글레어 — 창고 비전 AI가 가장 많이 실패하는 지점이다. 내 판단 기준은 이렇다. 화물 인식 프로젝트라면 학습 데이터의 최소 3분의 1은 '못생긴 화물'이어야 한다 — 변형, 파손, 반사, 오염. 못생길수록 좋다. 예쁜 화물로만 학습한 모델은 첫날에 실패한다. 아직 예외를 본 적이 없다.

속도와 가림은 어떤가? 랩 카메라는 시간을 쓸 수 있다. 여러분의 컨베이어는 기다려주지 않는다. 라인 속도는 모션 블러를 데려오고, 작업자가 화물을 집으면 가림이 생긴다. 이것들을 알고리즘으로 이기려 하지 마라 — 우회하도록 설계하라. 카메라의 프레임레이트와 노출을 실제 라인 속도에 맞추고, 핵심 공정에 사람의 확인 지점을 둬라. 창고의 비전 시스템은 언제나 생산성 도구일 뿐, 사람의 대체가 아니다. 대체로 취급하면 수업료를 내게 될 것이다.

학습 데이터는 왜 실제 현장에서 와야 하는가?

이것이 내가 가장 전달하고 싶은 점이다. 벤더가 자기 랩에서 찍은 데이터 — 혹은 여러분의 창고에서 '연출한' 데이터로 학습하는 프로젝트가 너무 많다. 밝은 시간대를 골라, 깨끗한 화물을 늘어놓고, 천 프레임을 찍고, 집에 가서 학습한다. 그렇게 만들어지는 것은 랩의 챔피언일 뿐이다. 첫 번째 흐린 날이 정체를 드러낸다.

제대로 하려면 이렇게 해라. 카메라를 설치한 뒤 2주간은 수집 전용 모드로 돌려라. 3개 교대, 맑은 날과 흐린 날, 모든 못생긴 화물을 담아라. 라벨링에서는 하드 샘플 — 모델이 틀렸거나 신뢰도가 낮았던 것 — 을 우선하라. 그것들을 학습에 피드백하고 2~3라운드 반복하라. 그때 비로소 현장 정확도가 실제로 올라간다. 지름길은 없다. 이 단계를 건너뛰면 92%가 천장이다. 하이퍼파라미터 튜닝을 아무리 해도 그 이상은 갈 수 없다.

창고 컨베이어 옆에서 비전 시스템을 조정하는 엔지니어

오탐과 미탐의 비용은 같은가?

인수 기준을 쓰기 전에 한 가지를 분명히 하자. 비용이 더 큰 것은 어느 쪽인가 — 오탐(양품 화물을 불량으로 판정)인가, 미탐(불량 화물을 통과시키는 것)인가? 거의 모든 창고 시나리오에서 미탐이 더 비싸다. 잘못 라벨링된 화물이 출고되면 클레임, 반품, 재발송 — 최소 수십 달러다. 오경보의 비용은 몇 초의 사람 검토뿐이다.

따라서 인수는 '정확도'라는 하나의 숫자에만 기댈 수 없다. 내 권장안은 이렇다. 오탐률과 미탐률을 별도로 평가하고, 미탐률에는 한 자릿수 더 엄격한 기준을 적용하라. 서명할 때 예쁜 '종합 정확도 99%'를 믿지 마라. 세 가지 질문을 하라. 테스트 세트에서의 미탐률은? 테스트 세트는 실제 현장 데이터였는가? 테스트 세트 구성을 계약 부록에 넣겠는가? 이 세 질문이면 벤더의 진짜 실력이 금방 드러난다.

시스템이 실패하면 어떻게 되는가?

아무리 좋은 시스템이라도 동작하지 않는 날을 상정하고 설계하라. 내 세 가지 규칙. 신뢰도 임계값 미달은 모두 사람에게 넘긴다. 시스템이 다운되면 수동 프로세스가 이어받는다. 핵심 공정 — 출고 검품 같은 — 에서는 비전 + 사람, 벨트에 멜빵까지. 모든 계란을 한 바구니에 담지 마라. AI가 사주는 것은 효율이지 면책이 아니다. 문제가 생기면 상사가 묻는 것은 '정확도가 얼마였느냐'가 아니라 '왜 아무도 눈치채지 못했느냐'다.

인수 체크리스트 — 서명 전에 직접 걸어가며 확인하라

  1. 테스트 세트 구성: 실제 현장의 하드 샘플 — 변형, 반사, 가림, 저조도 — 이 포함되어 있는가, 비중은?
  2. 분리 지표: 오탐률과 미탐률을 별도로 구했는가? 미탐률에 더 엄격한 기준이 적용되어 있는가?
  3. 조명 계획: 전용 광원이 있는가? 환경광이 변하면 누가 책임지는가?
  4. 속도 매칭: 프레임레이트와 노출이 실제 라인 속도에 맞춰져 있는가? 피크 속도에서도 정확도가 유지되는가?
  5. 하드 샘플 루프: 가동 후 오분류 샘플이 얼마나 자주 피드백되는가? 반복 사이클이 SLA에 들어 있는가?
  6. 폴백 플로우: 신뢰도 임계값은 얼마인가? 임계값 미달 건은 누가 처리하는가? 시스템 다운 시 수동 플랜은?
  7. 인수 런: 여러분의 창고에서, 여러분의 화물로, 여러분의 라인 속도로 — 서명 전에 한 교대를 풀로 돌려라. 랩 숫자는 카운트하지 않는다.

랩의 99%는 알고리즘의 천장이다. 현장의 92%는 엔지니어링의 시작이다. 그 사이의 격차를 메우는 것은 더 좋은 알고리즘이 아니라 더 좋은 엔지니어링이다. 서명할 때 이것을 기억하면 진짜 돈을 아낄 수 있다.

영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.