촬영 · 전처리
봉투를 찍고 기울기를 세우고 대비를 올린다. 리사이즈·회전·CLAHE 를 GPU 에서 체인으로 처리해 전송 비용을 없앤다.
우편물 자동구분에서 AI 가 하는 일은 두 가지입니다 — 봉투 위 글자를 읽는 것과, 그 글자가 가리키는 실제 배달점을 확정하는 것. 둘 다 틀릴 수 있으므로, 틀렸을 때 어디서 틀렸는지 알 수 있어야 합니다.
봉투를 찍고 기울기를 세우고 대비를 올린다. 리사이즈·회전·CLAHE 를 GPU 에서 체인으로 처리해 전송 비용을 없앤다.
유휴 인식기가 직접 작업을 가져간다. 건네줄 때 임대 기록을 남겨, 워커가 죽어도 우편물이 큐로 되돌아온다.
NF OCR V5 딥러닝 엔진이 주소와 등기 바코드를 읽는다. 1순위 글자만 믿지 않고 확률 상위 대안 조합까지 검토한다.
정규화 → 유형 판정 → 4단계 조회. 정확 매칭이 실패하면 유사도 앙상블이 후보에 점수를 매겨 실재 주소를 확정한다.
확정된 배달점을 구분계획에 대입해 칸 번호를 정한다. 판단 근거 22단계가 그대로 남는다.
컨트롤러(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 렌더링용 내장 그래픽에 인식을 물리는 사고를 막습니다. |
아래는 SortEngine 의 판단 추적 화면을 그대로 재현한 것입니다. 값이 실제로 바뀐 단계만 밝게 표시되고, 나머지는 지나간 단계입니다.
OCR 보정표에 '계룡노' 를 추가하면 앙상블까지 가지 않고 바로 맞습니다.
현장 촬영본을 주시면 동일한 파이프라인으로 돌려 인식 결과와 22단계 판단 근거를 함께 보내드립니다.