Index
2026-05-19 — Engineering

AHS CVPR 2026 Poster 빌드 완료

AHS_poster | HTML→PDF 파이프라인 | Playwright/Chromium no-root

TL;DR

2
PDFs (verify-ok)
9
Figures 최적화
15.8 MB
각 PDF 크기
4/6
Best 지표 수

1 배경 / 목적

CVPR 2026 논문 "AHS: Adaptive Head Synthesis via Synthetic Data Augmentations"의 컨퍼런스 포스터를 제작해야 했다. CVPR의 포스터 규격은 84″×42″ (213×107 cm) 2:1 landscape로 고정되어 있고, 컨퍼런스 측은 A0 등 타 포맷을 거부하며 업로드 후 수정이 불가능하다. 따라서 치수 정확도가 핵심 요구사항이었다 (±3 pt 허용).

추가 요구사항: 발표자 개인 소지용 A0 landscape (1189×841 mm) 버전도 동일 소스에서 생산.

기존 한계: 로그인 노드에 Chromium 시스템 라이브러리(libglib2.0, libnss3 등)가 없고 root 권한 없음 → Playwright headless 렌더링 불가능한 상태에서 시작

2 작업 내용

소스 구조 — 단일 HTML/CSS 2-profile

대안(LaTeX beamerposter, InDesign, Canva)은 버전 관리가 어렵고 layout iteration에 불리하여 기각. 단일 ahs_poster.html + poster.css에서 body.fmt-cvpr / body.fmt-a0 두 CSS 클래스로 한 DOM에서 두 포맷을 렌더링하는 fluid 방식을 채택했다.

파이프라인 (build.sh 오케스트레이션)

Step 1: scripts/optimize_assets.py (Pillow) → 9개 figure, 사진→JPEG q90, 다이어그램→PNG, longest side ≤ 3000 px Step 2: scripts/render_pdf.py (Playwright/Chromium) → fmt-cvpr 프로필: 84″×42″ PDF (6048×3024 pt) → fmt-a0 프로필: A0 landscape PDF (3371×2385 pt) Step 3: scripts/verify_pdf.py (pypdf) → 각 PDF: 정확히 1페이지 + mediabox ±3 pt assert

Chromium no-root 해결책

conda로 .venv-libs/ 환경에 필수 shared library만 설치 후, .venv/bin/activateLD_LIBRARY_PATH 훅 추가. 재현 절차: scripts/setup-chromium-libs.sh.

선택 이유: 시스템 패키지 설치(root 불가), Docker GPU 없음, sbatch(CPU-only 1분 작업엔 과잉) 대비 가장 빠르고 재현성 높은 경로

주요 결함 수정

결함원인수정
2페이지 분리 렌더링flexbox 자식 min-height:auto overflowmin-height:0 전파 + body.fmt-cvpr 사이징 override
4번째 metric 잘림 (2:1 프로필)hero column 비율 1.15 — Col4 flex 불균형hero column 1.15→1.45, Col4 flex 재조정

3 결과

파일포맷Mediabox (pt)페이지크기검증
out/AHS_CVPR2026_84x42.pdf84″×42″6048×30241~15.8 MBverify-ok
out/AHS_A0_landscape.pdfA0 landscape3371×23851~15.8 MBverify-ok

포스터 게재 수치 (논문 Table tab:quanti, SHHQ 기준)

지표AHS (Ours)HIDREFaceInstantIDBest
CLIP-I(Head) ↑0.913Ours
FID(Crop) ↓5.02Ours
ID similarity ↑0.623Ours
Expression ↓6.20Ours

6개 지표 중 4개에서 best. HID/REFace/InstantID 대비 우위.

핵심 성과: 초기 2페이지 분리 + metric 클리핑 결함 → 수정 후 두 프로필 모두 1페이지, 클리핑 없음, verify-ok
Figure 최적화: 9개 figure 전부 longest side ≤ 3000 px로 변환 완료

4 Takeaway

의미

./build.sh 한 번으로 CVPR 제출용 PDF(규격 정확) + 개인용 A0 PDF 두 가지를 동시에 생산하는 완전 재현 가능한 파이프라인이 구축됐다. HTML/CSS 소스를 수정하면 언제든지 두 포맷으로 재빌드할 수 있다.

Chromium no-root 문제를 scripts/setup-chromium-libs.sh로 문서화하여, 동일 환경에서 누가 재현해도 동일하게 작동한다. 이 패턴은 다른 프로젝트에서도 재사용 가능하다.

5 Next Steps

QR 코드 URL (필수 후속 작업)

포스터 내 QR 코드 target URL이 현재 placeholder. 저자들이 arXiv / project page URL을 확정하면 ahs_poster.html 수정 후 ./build.sh 재실행 필요.

선택적: KAIST 블루 accent 전환

현재 coral #e8643c accent를 KAIST 블루로 교체하는 선택적 작업. 현재는 S2 디자인 유지 상태.

CMYK 인쇄 프루핑 (범위 밖)

이 파이프라인은 RGB PDF를 생산함. 인쇄소 CMYK 변환은 별도 프루프 필요. 현재 파이프라인 범위 밖.