스캔 및 디지털 PDF에서 제조사, 모델, 일련번호 추출하기
이 워크플로우가 채우는 장비 대장의 품질은 제조사, 모델, 일련번호 열에 달려 있으며, 그 열의 품질은 PDF에서 값을 복사하는 사람에 달려 있다. 고객과 공급업체가 보내는 문서에서 모델 문자열은 대개 그 위에 인쇄된 헤더 아래에 위치한다. 좁은 띠 맨 위에 Model이라는 단어가 있고 그 아래에 값이 있으며, 다음 띠에는 Serial No.가 같은 방식으로 배치된다. 이런 문서를 한 번이라도 열어본 사람이라면 각 필드가 무엇인지 안다. 추출 문제는 페이지에 행 기반 테이블 리더가 따라갈 구조가 없다는 점이다. 따라갈 행 구조가 없기 때문이다.

핵심 요점
- 대장이 계속 틀리면 OCR(문자 인식)을 탓하고 싶어지지만, 세로형 테이블은 행 기반 리더가 따라갈 구조를 제공하지 않는다.
- 원본 문서에서 값을 다시 입력할 때 오류율은 6.57%인 반면, 원본을 바로 앞에 두고 입력하면 0.29%에 불과하다.
- 열 이름을 한 번 지정하면 ImageToTable.ai가 의미에 따라 각 값을 찾아내므로, 다음 공급업체의 레이아웃도 그저 또 하나의 페이지일 뿐이다.
이 실패 양상은 이 작업을 직접 수행하는 사람이 정확히 설명하고 있다. r/pdf에서 하루에 고객 PDF 10~100개를 여는 사용자는 이렇게 썼다: "고객으로부터 받은 PDF 페이지를 하루에 10~100개 처리하는데, 제조사, 모델, 일련번호를 수동으로 표에 입력해야 한다." 그 페이지들은 "스캔본과 일반 문서가 섞여 있고, PDF마다 형식이 달라 어려움이 있다. 대부분 세로형 표인데, 열 제목이 serial이고 그 아래에 값이 나열된다." 같은 스레드의 두 번째 댓글 작성자는 해결책이 나오기 전에 이렇게 답했다: "세로형 표는 일반 OCR에는 항상 골칫거리다. 나도 비슷한 지저분한 PDF 레이아웃을 다뤄본 적이 있다" (r/pdf).
제조사, 모델, 일련번호는 눈으로 찾기 어렵지 않다. 문제는 입력 단계 없이는 대장에 옮길 수 없다는 점이며, 그 단계를 무너뜨리는 레이아웃은 이름을 붙일 수 있을 만큼 흔하다.
이 문제를 안고 있는 독자는 유지해야 할 대장과 매일 쌓이는 공급업체 또는 고객 문서(장비 사양서, 명판 사진, 카탈로그, 서비스 및 교정 기록)가 있는 모든 팀이다. 운영, 조달, 자산 관리, 그리고 장비 재평가를 담당하는 재무 담당자 모두 동일한 세 필드를 다룬다. 이름은 제각각이고 형식은 일치하지 않으며, 대장은 절반만 맞는 일련번호를 빈 칸보다 더 받아들이지 않는다. 이 글은 해당 워크플로가 실제로 어디서 멈추는지, 그리고 레이아웃 독립적 추출 과정이 무엇을 바꾸는지 살펴본다.
이 작업을 수행하는 사람과 대장이 요구하는 것
세 역할이 결과물을 함께 사용하더라도 작업은 한 책상에 집중된다. 수령 조정자, 서비스 또는 자산 관리자, 계정 관리자가 각 PDF를 열고 세 값을 읽은 뒤 대장이 되는 시트에 입력한다. 대장 자체는 보통 Excel 통합 문서이며, 어느 시점에 CMMS로 가져오거나 보증, 교정, 교체 결정을 위해 조회된다. 실무자들이 다운스트림에서 실제로 사용하는 도구로는 IBM Maximo, UpKeep, Fiix, Limble, eMaint가 있으며, 이 모든 도구는 문서가 아닌 행을 가져온다.
| 역할 | 실제 수행 업무 | 데이터가 어긋나기 시작하는 지점 |
|---|---|---|
| 수령 조정자 | 각 PDF를 열고 제조사, 모델, 일련번호를 눈으로 읽어 대장 시트에 입력 | 줄을 건너뛰거나, 숫자를 뒤바꿔 입력하거나, 저해상도 스캔에서 복사하거나, 헤더를 값으로 읽음 |
| 자산 또는 관리 책임자 | 대장을 관리하고 각 행을 태그 및 위치와 대조한 뒤 CMMS로 가져올 준비를 함 | 입력된 행을 신뢰함. 물리적 태그와의 불일치는 검증 또는 감사 시점에야 드러남 |
| 재무 및 조달 | 일련번호 연동 기록을 보증 청구, 감가상각, 예비 부품 재주문, 폐기에 활용 | 잘못된 일련번호는 모든 다운스트림 시스템에서 다른 자산으로 인식되므로 조회 결과가 없거나 잘못된 기계가 반환됨 |
등록부 구축은 제조사, 모델, 일련번호, 태그 또는 자산 ID, 위치, 설치 날짜라는 작은 필드 집합으로 수렴한다. 이러한 필드로 구축된 등록부는 유지보수 로그를 PM 일정으로 전환하기에서 다루는 유지보수 결정을 지원하며, 가져오기 메커니즘이 중요한 이유는 거의 정확한 값으로 가득 찬 시트도 ERP 경계에서 여전히 실패하기 때문이다. 이러한 실패는 깨끗한 스프레드시트가 ERP에서 거부되는 이유에 대한 가이드에서 자세히 설명한다.
세로 테이블은 행 기반 리더가 따라갈 수 있는 행을 제공하지 않는다

세로 테이블에는 기계별 행이 없으므로 행 기반 추출기는 존재하지 않는 행을 만들어 낸다. r/pdf 게시자가 설명한 레이아웃, 즉 값 위에 헤더가 인쇄되고 이러한 스트립 여러 개가 나란히 배치된 구조는 테이블 재구성을 무너뜨리는 바로 그 구조다. 사람은 Serial No. 헤더 아래의 일련번호 열과 Model 아래의 모델 문자열 열을 읽는다. 왼쪽에서 오른쪽으로의 그리드를 가정하는 도구는 대신 각 모델을 읽기 순서상 뒤따르는 일련번호와 짝지으므로 값이 페이지 전체에 걸쳐 옆으로 흘러간다.
이 소프트웨어를 직업으로 만드는 사람들도 자신들의 포럼에서 같은 말을 한다. 테이블 추출 작업을 하는 개발자는 r/MachineLearning에서 상황을 요약했다: "table transformer, paddleOCR, google doc AI, GOT OCR, GraphOCR 등 많은 도구가 단순한 테이블 구조에서는 우수하지만 복잡한 구조의 테이블 감지와 추출에는 실패한다." 같은 스레드의 다른 실무자는 더 직설적으로 말했다: "공개된 모든 모델이 복잡한 실제 세계 테이블에서 완전히 실패한다는 것이 내 경험이다" (r/MachineLearning). 실패가 OCR 정확도 문제가 아니라 구조적이라는 이유는 테이블 추출에 관한 스레드에서 명확히 설명된다: "OCR은 문자에 강하지만 테이블은 관계(행/열/헤더 의미)에 관한 것이다. 대부분의 실패는 '나쁜 OCR'이 아니라 구조적 문제다" (r/founderledsales).
한 페이지에 한 대의 기계가 있을 수도 있고 백 대가 있을 수도 있다. r/pdf 게시자는 페이지당 1~100개의 제조사/모델/일련번호 세트를 언급했는데, 이는 추출기가 "한 페이지, 한 자산"을 가정할 수 없음을 의미한다. 모든 값 세트는 자신의 라벨에 맞춰 위치를 찾아야 하며, 바로 여기서 실패 비용이 커진다: 서로 어긋난 두 열에서 만들어진 등록부 행은 한 기계의 모델과 다른 기계의 일련번호를 갖게 되며, 조회가 실패하기 전까지는 그 행에서 아무것도 잘못된 것처럼 보이지 않는다.
스캔은 두 번째 오류 원인을 추가한다: 문자 자체

스캔은 레이아웃 문제 위에 두 번째 오류 원인을 추가한다: 문자가 잘못 읽힐 수 있다는 점이다. 일련번호는 짧고 영숫자이며 의도적으로 유사한 모양이 많기 때문에 이러한 오류가 발생하기 쉽다. 문자 O와 숫자 0, 소문자 l과 숫자 1, 문자 Z와 2, B와 8이 전형적인 쌍이며, 응용 연구는 그 규모를 문서화했다: 의학 문헌에서 여전히 인용되는 Bell Laboratories 연구에서 l/1, O/0, Z/2, 1/7 쌍이 모든 기호 식별 오류의 절반 이상을 차지했다 (PMC5614409). 일련번호에서 단 하나의 문자가 대체되면 다른 문자열이 되고, 다른 문자열은 모든 다운스트림 시스템에서 다른 자산이 된다.
기계를 그 이력에 연결하는 식별자는 해당 문자열이 온전하게 유지되는 것에 달려 있다. GS1 General Specifications는 Global Individual Asset Identifier(GIAI)를 자산을 소유자, 위치, 가치 및 수명 주기 기록에 연결하는 디지털 키로 정의하며, 제조사 일련번호가 해당 식별자의 중심에 있고 자산 수명 동안 변경되어서는 안 되며 하이픈, 선행 0, 대소문자와 같은 형식 변형이 조회를 깨뜨릴 수 있다고 명시한다 (GS1 General Specifications). 업계 관찰은 실질적 비용을 같은 위치에 둔다: MRO 데이터 전문가들은 대부분의 산업용 ERP 및 CMMS 장비 기록이 불완전하며, 기술 세부 정보가 처음부터 시스템에 추출된 적이 없는 "PDF 문서 내부에 갇혀 있다"고 보고한다 (Sharecat Data Services).
입력 단계는 오류가 집중되는 부분이다. 임상 연구의 데이터 처리 방법에 대한 2023년 체계적 검토는 바로 여기서 다루는 작업, 즉 원본 문서에서 값을 읽고 데이터베이스에 입력하는 작업을 측정했으며, 원본 기록에서 수동 추출의 오류율을 6.57%로 집계했고, 운영자 앞에 원본이 있는 단일 직접 키 입력의 경우 0.29%였다 (Garza et al., 2023). 문서에서 읽고 다시 입력하는 것은 측정 가능하게 가장 오류율이 높은 경로이며, 이것이 등록부의 정확성이 첫 번째 수식이 실행되기 전에 책상에 앉은 사람이 복사한 내용에 의해 결정되는 이유이다.
공급업체가 형식을 공유하지 않으며, 누구도 이를 통제하지 않습니다
모든 공급업체가 동일한 세 가지 필드를 서로 다른 레이아웃으로 인쇄하며, 문서를 수령하는 측은 의견을 제시할 수 없습니다. 명판 가이드라인 커뮤니티는 그 이유를 문서화했습니다. 전기 장비 명판에 대한 권장 실무인 UL 9691은 동일한 표준으로 인증된 제품 간에도 명판 정보가 크게 달라질 수 있으며, "이러한 가변성은 모든 제조사가 요구 사항에 대한 자신의 해석과 적용에 따라 필수 정보를 서로 다른 형식으로 제공하기 때문에 현장에서 어려움을 초래한다"고 명시합니다 (UL 9691-2021).
레이아웃은 표준화되어 있지 않지만 필드 자체는 표준화되어 있습니다. 산업 기계용 전기 표준인 NFPA 79는 제어 장비에 제조사 이름, 모델, 일련번호가 포함된 명판을 요구하며, 기타 표시 사항도 규정합니다 (NFPA 79). 또한 OPC UA 기계 식별 모델은 일련번호를 제조사와 모델 맥락 내에서 고유한 모든 기계 ID의 필수 속성으로 취급합니다 (OPC UA 40001-1). 내용은 규제되지만 시각적 배열은 규제되지 않습니다. 이것이 바로 템플릿 기반 OCR이 계속 실패하는 이유입니다. 템플릿은 한 형식에서 필드가 위치한 지도인데, 공급업체 간의 차이, 심지어 한 공급업체의 개정판 간의 차이로 인해 지도가 무효화되기 때문입니다.
자산 관리 표준은 문서보다 등록부에 부담을 둡니다. 자산 관리 맥락에서 데이터 관리 지침인 ISO 55013:2024는 조직이 정확성, 완전성, 일관성, 적시성을 포함한 자산 데이터의 품질 요구 사항을 명시하고, 의사 결정에 사용하기 전에 데이터 품질을 이해할 것을 요구합니다 (ISO 55013:2024). 실제로 이 조항은 등록부에 문서화된 정확성 요구 사항이 있고, 수동 입력 경로가 이를 기준으로 측정되어야 함을 의미합니다. 스캔 문서 변환의 일반적인 메커니즘은 스캔한 PDF를 스프레드시트로 추출하기와 더 단순한 레이아웃에 적합한 테이블 추출 방식에서 다룹니다.
해결책: 위치가 아닌 의미로 추출하기

해결책은 위치가 아닌 의미로 추출하는 것입니다. 맞춤 열 추출은 템플릿과 반대로 작동합니다. 원하는 열 이름(제조사, 모델, 일련번호)을 입력하면 AI가 고정된 영역이나 템플릿을 매칭하는 대신 필드의 의미를 이해하여 문서에서 각 값을 찾아냅니다. 입력한 열 이름은 출력 테이블의 정확한 헤더가 됩니다. 의미 기반 검색이므로 레이아웃은 더 이상 중요하지 않습니다. 값 위의 Serial No. 헤더는 그 자체로 라벨로 읽히며, 페이지가 세로 스트립 하나든 세 개든, 텍스트가 라벨 위, 아래 또는 옆에 있든 그 아래의 값은 일련번호 열에 들어갑니다.
이 하나의 메커니즘이 앞선 섹션의 세 가지 실패 유형 각각에 답합니다. 재구성할 행 구조가 없으므로 세로 테이블은 위협을 잃습니다. AI가 라벨의 의미에 기준을 둡니다. 스캔본과 디지털 문서가 섞인 경우도 두 유형 모두 동일한 의미 기반 판독을 거치므로 소스별로 별도의 OCR 파이프라인이 필요 없어 위협을 잃습니다. 무효화할 지도가 없으므로 형식 변동도 위협을 잃습니다. 새 공급업체 레이아웃은 그저 또 하나의 페이지일 뿐입니다. 이 스레드를 시작한 원래 불만은 정확히 이 질문이었습니다. "데이터 위에 헤더가 있는 제조사, 모델, 일련번호"를 처리할 수 있는 도구가 있는지. 이 접근 방식이 기본적으로 읽는 레이아웃이 바로 그것입니다.
나머지 워크플로우는 팀이 이미 유지하는 방식을 따릅니다. 전체 폴더를 하나의 배치로 업로드하면 일괄 처리가 모든 파일을 하나의 테이블로 병합합니다. 문서당 한 행씩, 전체에 동일한 세 개의 헤더가 적용됩니다. 모델 티어를 사용하면 가독성이 낮은 배치(대비가 낮은 스캔, 먼지가 끼거나 라미네이트된 명판, 추가 정밀도가 비용을 정당화하는 문서)에 더 강력한 비전 모델을 실행할 수 있습니다. 그리고 한 글자만 틀린 일련번호는 빈 값보다 나쁘기 때문에 Review Mode는 각 추출 값의 출처를 보여줍니다. 셀에 마우스를 올리면 값이 읽힌 원본 이미지의 정확한 영역이 강조 표시되어 0과 O를 구분하는 판단이 추측이 아닌 소스 확인이 됩니다.
단계별 가이드: PDF 폴더에서 레지스터 행까지
이 워크플로우는 네 단계로 구성되며, 공급업체별로 박스를 그리거나 파서를 구축할 필요가 없습니다. 다음은 책상에 도착하는 다음 혼합 배치에 적용할 절차입니다.
레지스터에 필요한 열 이름을 지정합니다
표시하려는 필드 이름(제조사, 모델, 일련번호)을 입력하고, 레지스터에 포함할 태그 또는 위치 열을 추가합니다. 이 이름은 출력의 헤더가 되므로 레지스터 시트와 정확히 일치해야 하며, 이후 번역 단계가 필요 없습니다.
전체 폴더를 하나의 배치로 업로드합니다
스캔 페이지, 디지털 PDF, 명판 사진이 모두 같은 배치에 포함됩니다. 전처리, 소스 유형별 분류, 최소 품질 검사가 필요 없습니다. 일괄 처리는 모든 것을 하나의 병합된 테이블로 통합하여 파일 하나씩이 아닌 한 번의 실행으로 레지스터를 재구성합니다.
신뢰할 수 있는 값을 검증합니다
자동 주석을 활성화하면 처리된 모든 파일에 소스 영역이 표시되어 돌아옵니다. 중요한 셀, 특히 일련번호에 마우스를 올려 원본의 강조 표시된 위치와 각 값을 확인합니다. 모든 행을 다시 읽는 단계였던 것이 이제 플래그가 지정된 항목만 확인하는 단계가 됩니다.
레지스터 또는 CMMS 가져오기로 내보냅니다
결과는 XLSX, CSV 또는 JSON으로 내보내져 레지스터 통합 문서에 바로 넣거나 Maximo, UpKeep, Fiix 또는 팀이 이미 사용 중인 스프레드시트가 기대하는 가져오기 템플릿에 맞게 준비됩니다. Google Sheets에서 작업하는 팀의 경우 추가 기능이 활성 시트로 직접 추출합니다.
효율성 기준으로 계산이 명확해집니다: 이 워크플로우의 제품 사양은 페이지당 5~10초이며 수동 입력 약 3분과 비교되고, 인쇄된 테이블 데이터에 대해 최대 99%의 정확도를 제공합니다. 정직함을 유지하는 주의점은 레지스터 데이터가 유지보수, 보증 및 감사 결정에 사용되므로 검증 단계가 선택 사항이 아니라는 것입니다. 사람들이 일반적으로 먼저 시도하는 배치 OCR 경로의 경우 경계를 명시할 가치가 있습니다: 배치 OCR은 파일을 검색 가능하게 만들지만 행을 생성하지는 않습니다, 이것이 여기서 중요한 차이점입니다.
파일은 안전하게 처리되며 저장되지 않습니다.
이 워크플로우가 여전히 할 수 없는 것
몇 가지 한계를 명확히 짚을 필요가 있다. 추출의 목적은 팀이 실제로 신뢰하는 등록부를 만드는 것이기 때문이다.
사람이 읽을 수 없는 스캔은 복구할 수 없다. 흐릿하거나 대비가 낮거나 찢어진 페이지는 모델 티어와 관계없이 신뢰할 수 없는 판독 결과를 낳으며, 읽을 수 없는 출력을 정리하는 대신 재스캔을 요청하거나 실제 명판 사진을 요청하는 것이 올바른 방법이다.
일부 모호한 문자는 실제로 모호한 상태로 남는다. 0과 O, l과 1의 구분은 종종 문맥, 필드, 간격, 형식 체크섬 또는 주변 문자를 통해 해결되며, Review Mode는 잔여 사례를 추측이 아니라 이미지와 대조하여 확인하기 위해 존재한다. 일부 행은 여전히 사람의 육안 확인이 필요하며, 이것이 모든 문자 판독 방식의 정직한 한계이다.
문서에서 등록부를 채우는 것이지, 문서를 검증하는 것이 아니다. 공급업체가 잘못된 일련번호를 인쇄했거나 원본 파일에 데이터 입력 오류가 있는 경우, 추출된 행은 이를 그대로 재현한다. 보증 자격과 같이 원본 문서가 진실의 기록인 결정의 경우, 물리적 명판 또는 제2의 기록과 대조하는 검증이 여전히 통제 수단이다.
등록부가 산출물이며, CMMS 선택은 더 큰 결정이다. 추출은 둘 중 하나에 데이터를 공급하지만, 팀이 CMMS를 선택하도록 강요하지 않으며, 물리적 자산 인벤토리에 수반되는 명판 대 명판 검증 작업을 대체하지 않는다. 현장 및 산업 팀이 더 넓은 환경을 고려할 때, 현장 및 산업 추출 도구 환경에서 각 접근 방식의 적합성을 다루며, 동일한 결정의 제조 측면은 제조 조달을 위한 문서 추출에서 별도로 다룬다.
FAQ
세로형 테이블이 정확히 무엇이며, 정말 추출을 방해하나요?
필드 라벨이 값 옆이 아닌 위에 위치하는 레이아웃으로, 종종 여러 개의 좁은 세로 띠가 나란히 배치됩니다. 네, 행 기반 테이블 리더를 방해합니다. 행 기반 리더는 페이지를 그리드로 재구성하고 읽기 순서상 인접한 항목을 짝지으므로, 모델과 일련번호가 페이지 전체에 흩어지게 됩니다. 의미 기반 추출은 라벨을 제목으로 읽고 그 아래의 값을 가져오므로 레이아웃은 더 이상 문제가 되지 않습니다.
파일이 스캔본과 디지털 PDF가 섞여 있습니다. 두 가지 설정이 필요한가요?
아닙니다. 둘 다 동일한 배치에 들어가 동일한 의미 기반 처리로 읽히므로, 스캔 페이지와 디지털 내보내기 파일은 동일한 헤더를 가진 동일한 테이블의 행이 됩니다. 혼합은 예외가 아니라 일반적인 경우입니다.
잘못 읽은 일련번호(0과 O, 1과 l)와 올바른 것을 어떻게 구분하나요?
원본을 보면 됩니다. Review Mode는 각 값이 나온 원본 문서의 정확한 영역을 강조하며, 양방향 모두 작동합니다. 셀에 마우스를 올리면 이미지 위치가 표시되고, 영역을 클릭하면 해당 셀로 이동합니다. 처리 후 자동 주석을 켜면 추가 실행 없이 모든 행에서 확인이 가능합니다. 더 어려운 스캔의 경우, 더 높은 모델 티어를 사용하면 복잡하거나 대비가 낮은 페이지에서 기본 비전 모델에 더 많은 여유가 생깁니다.
이미 Maximo나 UpKeep을 사용 중입니다. 이것이 대체품인가요?
아닙니다. 대체할 필요도 없습니다. 등록 데이터는 어떤 방식으로든 입력되어야 하며, 추출은 입력 단계에서 타이핑을 대체하여 CMMS가 기대하는 가져오기 준비 완료 행을 생성합니다. 아직 CMMS를 사용하지 않는 팀의 경우에도 동일한 처리가 수작업 입력 없이 스프레드시트 워크플로를 유지합니다.
수백 페이지의 과거 문서가 있습니다. 그 규모의 배치가 현실적인가요?
네. 일괄 처리는 정확히 이런 상황을 위해 설계되었습니다. 모든 것을 한 번에 업로드하고 병합된 출력을 검토하면, 타이핑 프로젝트가 동일한 열 정의에 대한 검증 작업으로 바뀝니다. 사무실 작업 시간은 키 입력에서 표본 점검으로 이동하며, Review Mode 강조 표시가 감사 추적으로 남습니다.
제조사, 모델, 일련번호 외에 레지스터에 어떤 열을 포함해야 하나요?
CMMS 가져오기 관행의 표준 최소 기준은 OEM 3요소와 함께 태그 또는 자산 ID, 위치, 설치 날짜입니다. 이 중 어느 것이든 문서에 포함된 경우 추출 열로 추가할 수 있으며, 문서에 없는 열은 패스를 중단하지 않고 단순히 비워 둡니다.
일련번호는 메모가 아니라 키입니다. 레지스터는 문서가 설명하는 모든 기계의 키를 보유하며, 작동하는 레지스터와 아무도 신뢰하지 않는 레지스터의 차이는 해당 키가 온전히 도착했는지 여부입니다.
다음에 우편함에 도착하는 배치에는 대장에 누락된 모든 일련번호가 들어 있다. 세 개의 열 이름을 한 번 지정하고, 폴더 전체를 실행한 다음, 값을 원본 페이지와 대조해 확인하면, 대장은 더 이상 책상에서 같은 문서를 두 번 입력하는 사람에게 의존하지 않게 된다.