
안녕하세요, 자바파커입니다.
"P&ID가 수백 장 있는데, 전부 옛날에 종이로 스캔한 PDF입니다. 이걸로 디지털 트윈을 만들 수 있을까요?"
공정 플랜트의 디지털 트윈을 이야기하면 거의 항상 이 벽에 부딪힙니다. 설계 자산의 뿌리인 P&ID(공정배관계장도)가 기계가 읽을 수 없는 "죽은" PDF·스캔 이미지로만 남아 있는 경우죠.
결론부터 말씀드리면 — 가능합니다. 단, "PDF 자동 변환"이 아니라 "AI 보조 + 엔지니어 검증으로 레거시 도면을 구조화 데이터로 재캡처하는 프로젝트"로 봐야 합니다. 마음가짐을 이렇게 바꾸지 않으면 자동화율 기대치 때문에 프로젝트가 좌초합니다.
이 글에서는 죽은 P&ID 한 장이 지식 그래프 → 디지털 트윈으로 가는 전 과정을, 특히 가장 어려운 디지털화 단계를 중심으로 정리합니다. ("왜 표가 아니라 그래프인가"가 궁금하시면 먼저 인력관리 온톨로지 설계 글이나 온톨로지 기반 검색 1편을 보고 오시면 흐름이 이어집니다.)
왜 P&ID는 지식 그래프와 천생연분인가
P&ID는 본질적으로 그래프입니다.
- 노드: 펌프, 용기, 밸브, 계기, 노즐
- 엣지: 배관 라인, 계장 신호선
"P-101 하류로 첫 차단밸브까지 추적", "PIC-200 컨트롤러에 신호를 주는 계기들", "이 밸브가 고장 나면 영향받는 범위" — 전부 그래프 순회입니다. 표(스프레드시트)로 누르는 순간 이 연결이 사라지죠. 인력관리 글에서 했던 논리가 여기서도 그대로 적용됩니다.
그래서 목표 표현형은 처음부터 정해져 있습니다. 온톨로지 기반 지식 그래프. 문제는 "어떻게 표현하느냐"가 아니라 "죽은 픽셀에서 어떻게 그 그래프를 끄집어내느냐" 입니다.
시작 전에 — "죽은 PDF"의 두 종류부터 구분하세요
이게 가장 큰 갈림길인데 의외로 많이들 건너뜁니다.
| 종류 | 특징 | 난이도 |
|---|---|---|
| born-digital PDF (CAD에서 인쇄만) | 안에 벡터 선 + 텍스트 객체가 살아있음 | 중 — 픽셀 인식 거의 불필요 |
| 진짜 스캔 이미지 (종이를 스캔) | 순수 래스터, 노이즈·기울어짐 | 상 — 풀 CV 필요 |
pdfminer·pdfplumber 같은 파서로 PDF 내부를 먼저 까보세요. "죽었다"고 단정한 PDF의 상당수가 실은 벡터 경로와 텍스트 좌표를 그대로 품고 있습니다. 그러면 선 좌표·태그 텍스트가 픽셀 추론 없이 바로 나와서 연결 복원 정확도가 10배 차이납니다.
진짜 스캔본일 때만 아래 풀 CV 파이프라인으로 갑니다. 첫 단계는 "이 도면이 어느 쪽인가"를 가려내는 것입니다.
풀 CV 파이프라인 — 스캔본을 그래프로
진짜 래스터 스캔본 기준, 전체 흐름은 이렇습니다.
스캔본
→ ① 전처리 : 디스큐·이진화·디워프, 300DPI+ 재스캔, 대형 도면 타일 분할
→ ② 심볼 검출 : 객체탐지(YOLO/DETR) — 펌프·밸브·계기·용기
→ ③ 텍스트/OCR : 태그번호(FT-101)·라인번호 인식 + 가장 가까운 심볼에 귀속
→ ④ 라인 검출 : 배관/신호선 벡터화, 실선·점선 구분, 크로싱(hop) vs 분기(tee)
→ ⑤ 위상 복원 : 심볼 포트 ↔ 라인 끝점 연결, 오프페이지 커넥터로 시트 간 연결
→ ⑥ 휴먼 검증 : 신뢰도 낮은 항목만 리뷰 UI로 라우팅 + 능동학습
→ ⑦ 표준 매핑 : DEXPI / ISO 15926 어휘로 매핑 → 지식 그래프 적재② 심볼 검출 — 범용 인식기를 만들려 하지 마세요
객체탐지(YOLO·DETR 계열)로 펌프·밸브·계기를 잡습니다. 그런데 P&ID 심볼은 종류가 수십~수백 개, 작고 밀집·중첩돼 있고, 결정적으로 회사·EPC마다 심볼 스타일이 다릅니다. ISA-5.1 같은 표준이 있어도 현장 도면은 사내 템플릿으로 변형돼 있어요.
현실적 출발점:
- 도면의 범례(legend) 시트를 심볼 라이브러리로 부트스트랩
- 심볼 라이브러리로 합성 데이터(synthetic data) 를 만들어 초기 학습
- 도면 패밀리별로 범위를 좁혀 학습 (한 발주처 도면은 스타일이 일관됨)
④ 라인 검출 — 선의 "종류"와 "교차"가 핵심
- 종류: 실선(공정 배관) / 점선·파선(계장 신호) / 일점쇄선(전기) 을 대시 패턴으로 구분
- 교차: 두 선이 만나는 지점이 그냥 지나감(hop, 점프 아크) 인지 연결(tee 분기) 인지 판별 — 여기서 틀리면 위상이 통째로 어긋납니다
⑤ 위상 복원 — 여기가 끝판왕입니다
심볼의 포트(노즐)와 라인 끝점을 연결해 그래프를 조립하고, 오프페이지 커넥터 태그로 여러 시트에 걸친 라인을 이어붙입니다. 오류가 누적되는 구간이라, 연결 하나가 틀리면 "P-101 하류 추적" 결과가 전부 어긋납니다.
그래서 엔지니어링 데이터에서 휴먼인더루프 검증은 타협 불가입니다. 잘못된 연결은 단순 오타가 아니라 안전 리스크니까요. 신뢰도 점수가 낮은 항목만 리뷰 UI로 보내고, 엔지니어의 교정이 다시 모델 재학습으로 돌아오는 능동학습 루프를 설계하세요.
2026년의 함정 — VLM은 어디에 쓰고, 어디에 안 쓰나
요즘 가장 오해가 많은 지점입니다. "비전 LLM에 도면을 통째로 넣고 그래프 뽑아달라고 하면 되지 않나?"
- ✅ VLM이 잘하는 것: 범례 해석, 태그 텍스트 판독, 심볼 few-shot 분류, 추출된 그래프를 규칙으로 검증·교정("이 제어 루프가 안 닫혔다", "이 용기엔 안전밸브(PSV)가 없다")
- ❌ VLM을 믿으면 안 되는 것: 픽셀 단위 정밀 연결/위상. VLM은 그럴듯한 연결을 환각(hallucinate) 합니다. 결과물이 깨끗해 보여서 더 위험해요.
정답은 하이브리드입니다. 위상·기하는 고전 CV와 기하 연산으로 정확하게, 의미·검증·범례 해석은 VLM으로. 위상 복원을 VLM 단독에 맡기지 마세요.
표준으로 표현하기 — 바퀴를 새로 만들지 말 것
그래프를 뽑았으면 어휘로 옮깁니다. 여기서 직접 클래스를 설계하기보다 이미 있는 산업 표준을 쓰는 게 정석입니다.
| 표준 | 무엇 |
|---|---|
| DEXPI | P&ID 데이터 교환 표준(Proteus XML), ISO 15926 기반 |
| ISO 15926 | 플랜트 생애주기 데이터 모델 + 참조 데이터 라이브러리(RDL) |
| ISA-5.1 | 계기·심볼 표기 표준 |
여기서 인력관리 글의 "스키마 vs 인스턴스" 구분이 그대로 적용됩니다.
- 스키마(TBox):
Pump,Valve,Instrument,PipingSegment,Nozzle클래스와connectedTo,hasPort,measures,controls관계 — DEXPI 클래스가 곧 스키마 - 인스턴스(ABox): 실제 도면에서 뽑은
P-101,FT-101, 그 사이의 연결 — 도면마다 쏟아지는 데이터
DEXPI(Proteus XML)를 정규 중간 포맷으로 두는 걸 권합니다. 그래야 나중에 인텔리전트 P&ID 도구(SmartPlant, AVEVA 등)와도 호환되고, 그래프 DB(Neo4j) 또는 RDF 트리플스토어로 적재하기도 깔끔합니다. 설계 규칙 검증은 SHACL/SPARQL로 — "모든 용기엔 PSV", "모든 제어 루프는 닫혀야" 같은 규칙을 자동으로 돌릴 수 있습니다.
그래서, 디지털 트윈까지 — 지식 그래프는 "골격"입니다
여기까지 오면 as-designed 정적 구조(연결 골격) 를 가진 지식 그래프가 생깁니다. 하지만 이것만으로는 "트윈"이 아니에요. 진짜 디지털 트윈은 두 축이 더 붙습니다.
P&ID → 지식 그래프 ←─ 정적 골격: 무엇이 무엇에 연결됐나 (이 글의 범위)
+ 실시간 데이터 ←─ OPC UA / Historian: 센서 태그를 KG 계기 노드에 바인딩 (살아있는 상태)
+ 거동 모델 ←─ 공정 시뮬레이션 / 서로게이트: "지금 이러면 어떻게 될까"
──────────────────────────────────────────────
= 디지털 트윈지식 그래프의 진짜 가치는 여기서 나옵니다. 같은 태그(FT-101)가 P&ID에도, 데이터시트에도, 제어 시스템에도, 정비 이력에도 흩어져 있는데 — KG가 동일성(identity)으로 이 모든 걸 한 노드에 묶는 의미 통합 레이어(single source of truth) 가 됩니다. 산업 표준 트윈 컨테이너인 Asset Administration Shell(AAS, Industrie 4.0) 와 연계하면 운영 시스템과의 접점도 표준화할 수 있습니다.
도면 재출력(redraw)은 사실 부산물에 가깝습니다. 단, 같은 그림으로 다시 그리려면 위상만으론 부족하고 레이아웃 좌표(geometry)를 주석 속성으로 함께 보존해야 한다는 점만 기억하세요. 시뮬레이션·영향분석이 목적이면 위상+속성만으로 충분합니다.
현실적 체크리스트
오래 헤매지 않으려면 이 순서로 점검하세요.
- 벡터/텍스트 레이어부터 추출 — 풀 CV는 진짜 스캔본에만 적용
- buy vs build를 먼저 따져라 — 레거시 일괄 전환이 목적이면 Hexagon·AVEVA·전문 벤더의 디지털화 서비스부터 평가. 평생 쓸 인식기 자체 구축은 별개의 제품 사업입니다
- 도면 패밀리별로 범위를 좁혀라 — 범용 인식기를 노리면 망합니다
- 신뢰도 기반 휴먼인더루프 + 능동학습 — 1호기는 사람 손이 많이 간다고 각오
- DEXPI를 정규 중간 포맷으로 → 그 다음에 KG 적재
- 정확도는 요소별로 측정 — 심볼/텍스트/연결 각각 precision·recall. 진짜 KPI는 "연결(connectivity) recall" 입니다
자주 묻는 질문 (FAQ)
Q1. 스캔본 100장이면 자동화율은 얼마나 기대할 수 있나요? 도면 품질·일관성에 따라 천차만별이라 단정하기 어렵습니다. 다만 패턴은 분명합니다 — 심볼·텍스트 인식은 비교적 높게, 연결(위상) 복원은 낮게 나옵니다. 그래서 "연결 recall"을 KPI로 잡고, 1호기는 자동 추출 + 대량 수작업 검증으로 가되 능동학습으로 회차를 거듭하며 자동화율을 끌어올리는 전략이 현실적입니다.
Q2. 그냥 비전 LLM에 도면을 넣고 JSON으로 그래프를 받으면 안 되나요? 태그 판독·심볼 분류·범례 해석·검증에는 훌륭합니다. 하지만 정밀 위상 복원은 환각 위험이 커서 단독으로 쓰면 안 됩니다. 깨끗해 보이는 틀린 연결이 가장 위험해요. 고전 CV로 위상을 잡고 VLM으로 의미·검증을 붙이는 하이브리드를 권합니다.
Q3. 꼭 RDF/OWL이어야 하나요? 속성 그래프(Neo4j)로는 안 되나요? 둘 다 됩니다. 표준 상호운용(ISO 15926 RDL과의 연계, 추론)이 중요하면 RDF 트리플스토어가, 빠른 위상 순회 쿼리가 잦으면 속성 그래프가 편합니다. 핵심은 DEXPI 같은 중간 포맷을 거쳐 표현형은 나중에 갈아끼울 수 있게 두는 것입니다.
여러분의 P&ID는 born-digital인가요, 진짜 스캔본인가요? 그 한 가지만 먼저 확인해도 프로젝트의 난이도와 일정이 절반은 결정됩니다. 레거시 도면 디지털화를 고민 중이시라면 댓글로 상황을 공유해주세요 — 같이 풀어보겠습니다.