읽고, 확정하고, 그 판단을 설명합니다.
봉투 위 글자를 읽는 일, 그 글자가 가리키는 실제 배달점을 확정하는 일. 둘 다 틀릴 수 있으므로 틀렸을 때 어디서 틀렸는지 짚을 수 있어야 합니다.
읽는 일과 보내는 일 사이에, 판단이 있습니다.
비전 카메라가 봉투를 판독하고 구분 엔진이 목적지 구분칸을 정합니다. 그 사이에서 일어난 판단은 전부 기록으로 남습니다.
한 통이 지나가는 여섯 단계.
AI가 개입하는 세 단계는 판단 근거를 남깁니다. 결과가 이상하면 어느 단계에서 어긋났는지 짚을 수 있습니다.
-
01
Vision
촬영 · 전처리
봉투를 찍고, 기울어진 이미지를 바로 세우고, 글자가 잘 보이도록 대비를 올립니다. 이 보정은 GPU에서 한 번에 처리합니다.
보정된 봉투 이미지 -
02
Supervisor
관제 · 작업 분배
손이 빈 인식기가 다음 봉투를 직접 가져갑니다. 누가 가져갔는지 적어 두므로, 인식기가 멈춰도 그 봉투는 대기열로 돌아와 다시 처리됩니다.
인식 작업 한 건 -
03
Recognizer
주소 · 바코드 인식 AI
딥러닝 OCR(Postal OCR V5)이 주소와 등기 바코드를 읽습니다. 가장 그럴듯한 글자 하나만 믿지 않고, 글자마다 다음 후보까지 함께 따져 봅니다.
주소 문자열 · 등기 바코드 -
04
SortCore
주소 매칭 AI
읽은 주소의 표기를 가지런히 맞춘 뒤 주소 데이터에서 찾습니다. 도로명+번호 → 도로명 → 동+지번 → 동 순으로 찾아도 없으면, 비슷한 후보에 점수를 매겨 실제로 있는 주소를 고릅니다.
확정된 배달점 -
05
SortEngine
구분칸 결정 AI
확정된 배달점을 구분계획(어느 우편물을 어느 칸으로 보낼지 적은 계획)에 대입해 칸 번호를 정합니다. 여기까지의 판단 과정이 22단계로 기록됩니다.
칸 번호 + 판단 기록 22단계 -
06
Gateway
설비 제어
구분기 컨트롤러(PLC)에 이 봉투를 몇 번 칸으로 보낼지 지시합니다. OMRON · SIEMENS · Modbus 방식 컨트롤러를 목록에서 골라 연결합니다.
컨트롤러 구분 지시
기울어진 봉투와 흐린 인쇄에 강한 딥러닝 인식 엔진
검출(det) · 인식(rec) · 방향분류(cls) 세 모델의 조합을 하나의 엔진으로 묶어 다룹니다. V5 는 검출 정확도를 개선한 최신 조합으로 기울어진 봉투와 흐린 인쇄에 강하고, V3 는 현장 검증이 가장 오래된 안정 조합이라 인쇄가 균일한 라인에서 씁니다. 라인 성격에 맞춰 엔진을 고르는 것이지, 하나를 강요하지 않습니다.
| 엔진 추가 비용 | 카탈로그에 항목 하나 + 서브클래스 3줄. 설정 UI·모델 관리 화면·팩토리는 손대지 않습니다. |
|---|---|
| 모델 관리 | 수백 MB 짜리 가중치를 실행파일에 넣지 않습니다. 현장에서 검증한 가중치를 넣어두면 공식 모델보다 항상 우선합니다. |
| 폐쇄망 대응 | 모델 보관소 폴더 하나만 복사하면 외부망이 없는 현장 PC 에서도 그대로 동작합니다. |
1순위 글자를 버리고 2순위를 택해야 맞는 순간이 있습니다
OCR 이 내놓는 결과는 보통 1순위 글자만 이어 붙인 한 줄입니다. '계룡로' 의 '룡' 을 60% 확신으로 '롱' 이라 읽으면 그 우편물은 그대로 리젝트로 떨어집니다. PostalNexus 는 글자마다의 후보를 남겨두고, 그 조합 중 참조 데이터에 실재하는 것을 찾아 되살립니다.
| 복원 예 | '계롱로 264' → 대안 조합 '계룡로 264' 가 마스터에 정확 매칭 → 채택 |
|---|---|
| 안전장치 | 조합이 정확 매칭될 때만 채택합니다. 비슷하다는 이유로 바꾸지 않으므로 오구분을 새로 만들지 않습니다. |
정확 매칭이 실패한 다음이 진짜 승부입니다
도로명+번호 → 도로명 → 동+지번 → 동 순으로 좁혀 들어갑니다. 네 단계가 모두 후보를 못 찾으면 앙상블이 켜져 유사도로 후보에 점수를 매기고, 임계값을 넘는 최상위를 채택합니다. 채택 점수와 탈락 후보의 점수가 함께 기록되므로 임계값을 현장 데이터로 조정할 수 있습니다.
| 한글 특화 정규화 | 시도명 축약, 행정구역 변경 이력, OCR 혼동 문자 보정표를 단계로 분리해 적용합니다. |
|---|---|
| 발신/수신 배타 배정 | 봉투 한 장에서 발신 주소와 수신 주소를 동시에 결정합니다. 한쪽씩 따로 뽑으면 같은 덩어리를 양쪽이 가져가는 충돌이 납니다. |
오구분의 원인이 어느 단계에서 생겼는지 화면에서 짚습니다
AI 를 현장에 넣을 때 가장 곤란한 질문은 "왜 저 칸으로 갔느냐" 입니다. PostalNexus 는 판단 과정을 로그 문자열이 아니라 구조로 메모리에 모읍니다. 값이 실제로 바뀐 단계만 밝게 칠해지는데, 22개 중 대개 3~4개이고 오구분은 거의 항상 그중 하나에서 시작됩니다.
| 운전 중에 켤 수 있습니다 | 콘솔 I/O 가 없어 운영 중 활성화가 가능합니다. 꺼져 있을 때의 비용은 측정되지 않는 수준입니다. |
|---|---|
| 즉석 시험 | 클레임 받은 주소 한 줄을 붙여 넣고 실행하면 지금 돌려봅니다. 같은 우편물이 다시 지나가기를 기다릴 필요가 없습니다. |
| 탈락 후보 공개 | 채택되지 않은 후보까지 점수와 함께 나란히 보여줍니다. 비교 없이는 답할 수 없는 질문이기 때문입니다. |
같은 발송인의 봉투는 두 번째부터 빨라집니다
대량 발송 우편물은 봉투 위 주소 위치가 늘 같습니다. 인식 결과에서 레이아웃 패턴을 축적해두면 다음 번에는 그 영역을 먼저 봅니다. 학습 데이터가 준비되면 재시작 없이 반영되고, 준비되지 않은 동안에도 인식은 대조 없이 계속 돌아갑니다.
| 정답 데이터 생성 | 문서 이해형 대형 모델(Nemotron OCR)을 재처리 경로에 두어, 사람이 라벨링하지 않고도 학습용 정답을 만듭니다. |
|---|
카드를 늘리면 처리량이 늘어납니다
OCR 딥러닝 추론은 CPU 대비 10~50배 차이가 납니다. TensorRT 로 20~40%, FP16 으로 1.5~2배가 더 붙습니다. GPU 를 여러 장 꽂으면 워커를 라운드로빈으로 붙이되 큐는 하나로 둡니다 — 봉투마다 처리 시간이 제각각이라 장치별로 큐를 나누면 한쪽에만 줄이 섭니다.
| 조용한 성능 저하 방지 | GPU 초기화가 실패했을 때 CPU 로 몰래 내려앉지 않도록 막을 수 있습니다. 아무도 모르는 채 처리량만 떨어지는 상황을 만들지 않습니다. |
|---|---|
| 카드 선택 | 설정 화면이 탐지된 카드를 이름·VRAM 과 함께 보여줍니다. UI 렌더링용 내장 그래픽에 인식을 물리는 사고를 막습니다. |
오구분 한 건을 이렇게 읽습니다.
아래는 판단 추적 화면을 읽기 쉽게 옮긴 것입니다. 파란 단계는 값이 실제로 바뀐 곳이고, 주황 글씨는 그 단계에서 무슨 일이 있었는지 적은 메모입니다. 맨 윗줄처럼 아무것도 바뀌지 않은 단계가 원인일 때도 있습니다.
OCR 보정표에 '계룡노'를 추가하면 앙상블까지 가지 않고 바로 맞습니다.
우리 우편물로 인식률을 확인해 보십시오.
현장 촬영본을 주시면 같은 소프트웨어로 돌려 인식 결과와 22단계 판단 근거를 함께 보내드립니다.