← ClaudeAtlas

kr-patent-drawing-tagginglisted

한국 특허 도면 PNG에 도면부호를 직접 그려 넣는(태깅하는) 스킬. 확정된 부호 체계 (kr-patent-symbol-design)와 박스별 매핑(kr-patent-drawing-mapping의 지시서)을 입력받아, cv2 박스 자동검출 + 어두운 픽셀 충돌감지 폴백 배치로 부호 텍스트를 도면 이미지 위에 삽입하여 태깅본 PNG를 생성한다. 매핑표(md+xlsx)까지 함께 산출. "도면에 부호 넣어줘", "도면부호 태깅", "PNG에 부호 삽입", "태깅본 만들어", "부호 그려 넣어", "도면에 번호 박아줘", "reference numeral overlay" 같은 표현이 보이거나, 무부호 블록도/흐름도 도면에 부호를 입혀 출원용 도면을 만들려는 맥락에서 사용. (부호 체계 설계=symbol-design, 박스↔부호 매핑표만=drawing-mapping, 본 스킬=이미지에 실제 삽입.)
lsj4232/KR_PATENT_SKILL · ★ 4 · Data & Documents · score 77
Install: claude install-skill lsj4232/KR_PATENT_SKILL
# 한국 특허 도면부호 태깅 (PNG 직접 삽입) ## 무엇을 하는가 무부호 도면 PNG(블록도·파이프라인도·흐름도)에 도면부호를 **이미지 위에 직접 그려 넣어** 태깅본 PNG를 만든다. 검증된 파이프라인 (사건 C, 도면 14장 / 부호 98개 실전 검증): ``` 도면 시각 판독 → 부호 체계 확정 → 도면별 anchor 설정(JSON) 작성 → scripts/tag_drawings.py 실행 (cv2 박스검출 + 최근접 매칭 + 충돌감지 배치) → 태깅본 전수 육안 검증 (Read로 이미지 확인) → 어긋난 도면만 설정 수정 후 재실행 → 부호매핑표 md/xlsx 산출 ``` ## 작업 순서 ### Step 1. 입력 확보 - 도면 PNG 폴더 (숫자 파일명 `1.png`, `2.png`, … 권장) - 확정된 부호 체계 (없으면 kr-patent-symbol-design 먼저 호출) - **모든 도면을 Read로 시각 판독**하여 각 박스의 위치를 파악해 둔다 (anchor 좌표의 근거). ### Step 2. 설정 JSON 작성 `examples/사건 C_config.json` 을 복사하여 사건별로 작성. 도면마다: | 필드 | 의미 | |---|---| | `solo` | 태깅할 단독 박스 `[fx, fy, "부호"]` — fx/fy는 박스 중심의 이미지 폭·높이 대비 비율(0~1). 시각 판독 시 표시 좌표 ÷ 표시 크기로 추정 | | `cyl` | 실린더(DB 등) — 내부 하단 중앙에 배치 | | `container` | 최대 면적 박스(예: 제어부 컨테이너) 부호 — 내부 우상단 | | `groups` | 점선 그룹: `sym`(대표 부호), `members`(멤버 박스 locator 좌표 — 검출 소진용, 무부호), `tagged`(예외적으로 부호 붙일 멤버 `[idx, "부호"]`) | | `copy_only` | true면 무수정 복사 (부호가 이미 인쇄된 도면) | anchor는 대략적이어도 된다 — 스크립트가 검출 박스와 **최근접 매칭**하므로 박스 중심에서 다소 어긋나도 올바르게 붙는다. 박스가 밀집한 도면만 정확히. ### Step 3. 실행 두 가지 스타일 엔진 중 선택: ```bash # (a) 인라인 스타일 — 박스 내부 라벨 옆에 숫자 python scripts/tag_drawings.py --config <사건별 config.json> # (b) KIPO 정식 작도 스타일 — 박스 외부 숫자 + 구불선 지시선 (레퍼런스: 사건 B 작도본) python scripts/tag_drawings_leader.py --config <사건별 config.json> ``` leader 엔진(v2) config 확장: figure별 `pad_top/left/right/bottom`(캔버스 여백 확장 px), solo 항목 4번째 요소로 배치 방향(`above/below/right/right_upper/left/above_left`), groups에 `"sides"`, tagged 항