TS 튜닝 규칙 탐색기기준: 2026 사무편람 개정본

가용 알고리즘 분석

두 PDF(스캔 이미지, 총 448p)를 처리해 규칙 DB를 만들고 도면을 판정하기까지 사용한 알고리즘과, 대안·고도화 방안입니다.

파이프라인 단계별 구현

단계파일알고리즘상태
1. PDF → 이미지 + OCRtuning_ai/ocr_pdf.pyPyMuPDF 150dpi 렌더 → RapidOCR(PP-OCRv6 검출 + 한국어 PP-OCRv4 인식, ONNX CPU). 방향분류기(cls)를 끄면 굵은 글씨 180° 오인식이 사라짐. 페이지별 JSON(박스·텍스트·점수), 재개 가능.완료 (2025: 202p, 2026: 246p)
2. 그림 영역 검출·분류tuning_ai/figures.pyOCR 박스 마스킹 → HSV 채도 마스크 ∪ (어두운 픽셀 ∩ Canny 엣지밀도) → 모폴로지 close/open → 연결요소 → 병합 → 흰 세로공백으로 나란한 그림 분리. 영역별 채도평균·엣지밀도·흰비율·Hough 수평/수직선 비율·평탄비율로 photo/drawing/table/diagram/decoration 분류. 머리말 장식 띠 제외.완료
3-A. 2025 사례집 구조 파싱tuning_ai/parse_2025.py테마당 1페이지 레이아웃 규칙: 머리말 텍스트 → 분류(자유/승인/불가)·차종, THEME 번호, 우측 장치분류, 큰 글씨(h≥52px) 제목 / 작은 부제, '장착의 예' 아래 필드 상태기계(관련근거/경미한 장치 기능/참고사항/허용범위). 꼬리말에서 편·책 페이지. 역순 스캔 대응.완료 191항목
3-B. 2026 편람 표 파싱tuning_ai/parse_2026.py고정 임계(g<225)+수평 open(0.12W)으로 얇은 회색 괘선 검출 → 행 경계. 좌측 라벨열(x<0.21W)의 텍스트로 필드 결정(제목/코드/개요/필요서류/구조/행정사항/기타/튜닝후내역/승인사례/연혁). 한 행에 라벨 2개 이상이면 라벨 y 중간점에서 분할(괘선 누락 보정). '제목' 행에서 새 항목 시작, 페이지 넘김 연속. 코드 정규식 (\d{3})(장치|구조). 소표(신청항목/차체크기/최대안전경사각도) 별도 추출. 우측 세로 글씨로 장치 분류.완료 80항목
4. 도면 인식tuning_ai/drawing.pyPDF/이미지 200dpi + 2400px 업스케일 → 0°/90°/270° OCR 후 좌표 역변환·중복제거(세로 치수 대응). 제원 라벨 정규식 21종 → 같은 행(|Δcy|≤0.7h) 숫자 토큰을 '변경전/변경후' 머리글 x좌표 기준으로 열 배정, 단위 정규화(m→mm, t→kg). 차명/차종/형식/차대번호/원동기형식/연료 추출. 뷰: 잉크 마스크(텍스트 제외) 큰 팽창 연결요소 + figures 검출기 병합 → 캡션(정면도/측면도/변경전/후) 연결, 뷰 내부 3~5자리 숫자를 치수로 수집.완료 (합성 도면 검증)
5. 판정 엔진tuning_ai/judge.py · rules.py문자 바이그램 Jaccard/포함도로 항목 매칭 → 공통 규칙(치수·총중량·축중 한계, 총중량 산식, 차량중량 증가 한도, 허용차, 높이 증가→경사각) → 항목표 차체크기 대조(언급된 제원만) → 구조/행정 조건 체크리스트(제한 문구 자동 경고) → 필요서류 키워드 존재 검사 → 6등급 판정 + 출처 페이지.완료
6. 웹 탐색기web/ (Next.js 16)서버 컴포넌트가 out/ 의 KB JSON을 직접 읽음(재생성 시 즉시 반영). 원문 페이지·그림은 /api/asset 로 스트리밍. /api/judge 가 파이썬 CLI를 spawn.실행 중

OCR 엔진 대안

  • RapidOCR(현재, CPU ONNX, 페이지당 10~30s) — 무설치·경량
  • PaddleOCR PP-OCRv5 서버 모델 — 정확도↑, GPU 권장
  • EasyOCR — torch 의존(≈2GB), 한국어 지원
  • Tesseract kor — 표/세로글씨 약함
  • Claude/GPT 비전 API — 표 구조·문맥 이해 최고, 건당 비용·외부전송

레이아웃/표 인식 대안

  • 괘선 기반 행 분할(현재) — 단순·견고, 괘선 누락 시 라벨 중간점 보정
  • PP-Structure / TableTransformer — 셀 단위 복원, 병합셀 처리
  • LayoutLMv3 / Donut — 문서 이해 모델 파인튜닝(라벨 데이터 필요)

도면 인식 대안

  • 치수선 검출: Hough + 화살표 템플릿 매칭 → 숫자와 치수선 연결(현재는 뷰 내부 숫자 수집)
  • CAD 원본(DWG/DXF)이 있으면 ezdxf 로 치수 엔티티 직접 읽기 — OCR 불필요, 정확도 100%
  • YOLO 기반 뷰/표/제원표 영역 검출기 학습(샘플 도면 50~100장)
  • 변경전·후 뷰의 실루엣 차분으로 변경 부위 하이라이트(윤곽선 XOR)

판정 로직 고도화

  • 규칙 DSL(YAML)로 항목별 수치 조건 명세 → 자동 검사 확대(현재 공통 규칙만 자동)
  • LLM 보조: 조건 문장 ↔ 도면 텍스트 의미 대조, 결과는 근거 페이지와 함께 제시
  • 사례 기반 추론: 승인사례 그림과 입력 뷰의 이미지 임베딩(CLIP) 유사도
  • 제원관리번호/차대번호 → 자기인증 제원 DB 조회로 비교제원 자동 확인

한계와 주의

  • OCR 오인식(예: 튜닝→투닝, 윈치→원치)이 KB 텍스트에 남아 있습니다. 원문 페이지 이미지를 항상 함께 제공합니다.
  • 허용차 표(별표33) 수치는 OCR 판독값으로, 법령 원문과 대조가 필요합니다.
  • 판정은 치수·중량 같은 정량 규칙만 자동이며 구조 조건(골조 강성, 절개 범위 등)은 체크리스트로 제시합니다 — 최종 판단은 검사원의 몫입니다.
  • 합성 도면으로만 검증했으므로 실제 신청 도면(CAD 출력물, 손도면, 사진 첨부형)으로 추가 튜닝이 필요합니다.