상태: v1.1 — 방향 조정: "화질 판정 VLM"을 1차 결과물로, "VLM 기반 최적화"를 2차 결과물로 재구성
배경
파이프라인
Quad Bayer raw --> HW 이미지 처리 (Remosaic) --> Bayer raw
^
튜닝 레지스터 (~30개, 정수)
- HW 처리 로직은 고정되어 있음. 바꿀 수 있는 것은 레지스터 값뿐임.
- 레지스터 값 하나의 세트를 모든 장면에 공통으로 적용함.
데이터 구성
- ROI: 촬상 장면 × 디포커스 수준 × 장면별 ROI(200×200) 여러 개 → 약 50~100개
- 차트 위주이며, 일부 자연 영상이 포함됨.
- ROI마다 특성이 다양함. SFR 측정이 가능한 ROI(slanted edge 등)도 있고 아닌 ROI도 있음.
GT (레퍼런스)
- 매우 큰 딥러닝 모델(SW remosaic)로 생성함.
- GT는 HW가 도달할 수 없는 수준의 이상적인 목표임. 레지스터 30개만 조정할 수 있는 HW는 어떤 값으로도 GT를 완전히 재현할 수 없음.
- GT에도 결함이 있을 때가 있음. 이 경우 사람이 보고 판단하여 GT를 인위적으로 만들어 넣음.
- GT를 의도적으로 수정하기도 함. SFR / MTF를 loss에 직접 넣지 않는 대신, GT에 샤프닝을 주는 식으로 해상력을 높이는 방향을 유도함.
지금까지의 접근
| 단계 | 방법 | 한계 |
|---|---|---|
| 1 | 사람이 Bayer 출력과 레퍼런스를 눈으로 비교하며 레지스터를 수동 튜닝 | 시간이 많이 들고, 사람마다 결과가 다르며, 재현이 어려움 |
| 2 | HW를 미분 가능하게 구현(bit-exact)하고, GT와의 L1 loss로 역전파 최적화 | blur로 수렴, 아티팩트 발생, ROI 간 밸런스 문제 (아래 참고) |
- 미분 가능한 HW 모델은 실제 HW와 bit-exact임.
- STE(Straight-Through Estimator)를 사용함: forward에서는 레지스터를 정수로 quantize하고, backward에서는 float로 gradient를 흘림.
문제 정의
관찰된 L1 최적화의 문제
- Blur로 수렴: L1은 픽셀 오차의 평균을 줄이는 방향으로 움직이므로, 디테일을 살리기보다 흐릿하게 뭉개는 쪽이 더 "안전한" 해가 됨.
- 포기할 영역을 정하지 못함: HW가 GT를 완전히 따라갈 수 없는데도 L1은 모든 영역을 똑같이 맞추려 함. 그 결과, 포기해도 되는 영역을 맞추려다 다른 영역에서 눈에 보이는 아티팩트가 올라옴.
- ROI 간 밸런스 문제: 50~100개 ROI의 loss를 합치는 과정에서, 일부 ROI가 최적화를 지배하거나 다른 ROI가 희생됨.
핵심 문제
HW의 표현력은 제한되어 있으므로, 결국 "어디를 포기하고 어디를 지킬지"를 정하는 트레이드오프 문제임. L1은 이 판단을 하지 못하고 모든 오차를 같은 무게로 취급함.
지금 사람이 개입하는 지점
L1 최적화가 자동화된 뒤에도, 화질 판단은 여전히 사람이 다음 세 곳에서 하고 있음:
| # | 개입 지점 | 현재 방식 | 판단 기준 |
|---|---|---|---|
| ① | ROI 우선순위 / 포기 판단 | 결과를 보고 "여기는 포기, 여기는 더 보자"를 결정 | 경험과 느낌 (명시적 규칙 없음) |
| ② | GT 수정 (선호 반영) | 해상력을 높이려고 GT에 샤프닝 등을 줌 | 경험과 느낌 |
| ③ | GT 결함 처리 | GT에 결함이 있으면 사람이 보고 인위적으로 GT를 만들어 넣음 | 사람이 보고 판단 |
포기 판단(①)의 근거는 크게 두 가지임:
- 물리적 한계: HW로는 아무리 해도 맞출 수 없는 영역 (예: 강한 디포커스, HW 로직이 표현하지 못하는 패턴)
- 중요도: 다른 것보다 이 항목이 더 중요하다는 판단 (예: 해상력 > 특정 아티팩트)
판단 기준이 명시적인 규칙이 아니라 암묵지(느낌)이므로, 규칙을 프롬프트로 적어 넣는 방식만으로는 재현하기 어려움. 사람의 판단 사례를 모아 VLM이 이를 따라 하는지 검증해야 함.
목표
VLM이 사람 튜너를 대신해 ①~③의 화질 판단을 수행하고, 그 판정을 레지스터 최적화에 반영한다.
- ① VLM이 ROI별 결함의 종류와 심각도를 판정하고, 우선순위와 포기 여부를 정함 → ROI loss 가중치에 반영
- ② VLM이 HW 출력과 GT 사이에서 개선할 방향(더 샤프하게, moiré 억제 등)을 판단 → GT 수정 대신 loss 구성에 반영
- ③ VLM이 GT 자체의 결함을 검출 → 해당 ROI를 제외하거나 사람에게 확인 요청
VLM이 판정할 항목:
- 해상력: SFR / MTF, 디테일 보존, 엣지 선명도, blur (최우선)
- 아티팩트: moiré (최우선), false color, zipper, maze, aliasing 등
- 기타: 노이즈, 텍스처 손실, 전체 자연스러움
연구 질문과 결과물
과제는 두 개의 연구 질문으로 정리됨:
| 질문 | 핵심 | 결과물 |
|---|---|---|
| Q1. VLM이 화질을 제대로 판정할 수 있나? | moiré, false color, zipper 같은 미세한 remosaic 아티팩트를 사람 튜너처럼 판정하는지 | 1차 결과물: 화질 판정 VLM |
| Q2. 그 판정으로 효율적으로 최적화할 수 있나? | VLM 호출을 적게 하면서 포기할 영역과 우선순위를 최적화에 반영하는지 | 2차 결과물: VLM 기반 레지스터 최적화 |
왜 판정 VLM을 1차 결과물로 두는가
- Q2는 Q1 위에 서 있음. 판정이 믿을 만하지 않으면 최적화도 성립하지 않으므로, 어차피 Q1을 먼저 풀어야 함.
- Q1 결과는 Q2와 상관없이 남음. 최적화가 기대만큼 안 나와도 판정 VLM은 그 자체로 쓸모가 있음 → 프로젝트 위험이 줄어듦.
- 연구 공백이 뚜렷함. 기존 VLM 화질 평가 연구는 자연 영상의 일반 열화 위주이며, remosaic / ISP 아티팩트를 다룬 연구는 찾지 못함 (
02_background.md). - 쓰임새가 넓음. 이번 레지스터 최적화뿐 아니라 다른 ISP 블록 튜닝, HW·펌웨어 버전별 화질 회귀 검사, GT 결함 검사, 사람이 눈으로 하던 비교 작업 전반에 쓸 수 있음.
- 고유한 자산이 있음. bit-exact HW 모델로 레지스터를 흔들면 실제 HW에서 나오는 아티팩트를 심각도를 조절하며 대량으로 만들 수 있음. 학계에서는 얻기 어려운 데이터임.
1차 결과물이 갖춰야 할 것
"사내 데이터로 VLM을 미세조정했다"만으로는 기여가 약하므로 아래를 함께 갖춰야 함:
- 벤치마크와 분석: 어떤 아티팩트를 VLM이 보고 어떤 것을 못 보는지
- 데이터 생성 방법: 레지스터 섭동으로 실제 HW 아티팩트를 만들고 라벨을 붙이는 방법
- "왜 VLM인가"에 대한 답: 고전 지표, 작은 전용 모델(CNN 분류기 등)과의 비교. VLM의 강점(이유 설명, 우선순위 판단, 새 결함 종류에 대한 유연성)을 보여야 함
- 실제 쓸모의 증거: 2차 결과물(최적화)에 넣었을 때 사람 선호에 가까워지는지
결과물 구성 방식 (선택지)
- (a) 논문 2편: 판정 VLM / VLM 기반 최적화
- (b) 논문 1편: 판정 VLM이 주 기여, 최적화는 응용 사례
- 외부 발표 시 사내 데이터 공개가 어려우므로, MIPI 공개 데이터 + 공개 remosaic·demosaic 알고리즘으로 만든 공개용 벤치마크를 따로 구성하는 방안을 검토함.
입력 / 출력
- 입력
- Quad Bayer raw ROI 약 50~100개 (200×200, 장면 × 디포커스 × ROI)
- GT: 대형 DL 모델의 remosaic 결과 (일부는 사람이 수정·대체한 것)
- 미분 가능한 HW 모델 (bit-exact, STE) + 레지스터 약 30개 (정수, 범위 있음)
- 초기 레지스터 값: 수동 튜닝값 또는 L1 최적화 결과
- 출력
- [1차] 화질 판정 VLM: HW 출력과 GT(또는 두 후보)를 받아 선호, 결함 종류·심각도·위치, 이유를 내는 모델 + 판정 벤치마크
- [2차] 모든 장면에 공통으로 적용할 레지스터 값 1세트
- [2차] VLM 판정 리포트: ROI별 결함 종류·심각도, 우선순위, 포기 여부와 그 이유
접근 방식 후보 (2~3단계에서 구체화)
| 후보 | 설명 | 역전파 사용 | 현재 조건에서의 평가 |
|---|---|---|---|
| A. VLM 점수 + 블랙박스 최적화 | VLM 점수를 목적함수로 두고 CMA-ES, BO 등으로 탐색 | X | 후보 하나를 평가할 때마다 ROI 50~100개를 VLM으로 판정해야 하므로 비용이 큼 |
| B. VLM 에이전트 | VLM이 판정을 보고 다음 레지스터 값을 직접 제안 | X | 레지스터의 의미를 VLM이 알아야 함. 초기 탐색에 쓸 수 있음 |
| C. 하이브리드 | VLM이 ROI별 결함·우선순위를 판정하고, 이를 바탕으로 ROI 가중치와 loss 구성을 조정한 뒤 역전파 | O | 현재 조건에 가장 잘 맞음. 사람 개입 지점 ①~③을 그대로 VLM으로 대체하는 구조임 |
| D. VLM 판정 증류 | VLM 판정을 학습한 미분 가능한 critic을 만들어 loss로 사용 | O | 데이터와 학습 비용이 큼. 장기 과제로 적합함 |
C안의 구조 (안):
[바깥 루프: 낮은 빈도] VLM이 ROI별 HW 출력 vs GT 판정
> ROI 가중치, 포기 여부, loss 구성 갱신
[안쪽 루프: 높은 빈도] 갱신된 loss로 역전파 N step (기존 파이프라인 재사용)
- VLM 호출은 바깥 루프에서만 일어나므로, 역전파 step마다 VLM을 부르지 않아도 됨.
가정 및 제약 조건
- HW 로직은 바꿀 수 없음. 레지스터(약 30개, 정수)만 조정할 수 있음.
- 미분 모델은 HW와 bit-exact이므로, 미분 모델에서의 결과가 실제 HW 결과와 같음.
- 모든 장면에 공통인 레지스터 1세트를 찾아야 함. 장면마다 최적값이 다르므로 장면 간 트레이드오프가 생김.
- GT는 HW가 도달할 수 없는 목표이며, 결함이 있을 수도 있음. 따라서 "GT와 똑같아지는 것"이 아니라 "GT 대비 결함이 덜 거슬리는 것"을 목표로 함.
- SFR / MTF는 일부 ROI에서만 측정할 수 있으므로, 전체 ROI에 공통으로 쓰는 loss로 넣기 어려움.
- VLM 제약
- 보안상 외부 API는 쓸 수 없음. 오픈소스 VLM을 내부에서 실행해야 함.
- GPU: H200 1장(141GB)
- 30B급 모델은 BF16으로 충분히 올라감.
- 70B급 모델은 BF16 가중치만 140GB 이상이라 1장에 올리기 어려움. FP8 / INT8로 양자화하면 실행할 수 있음.
- VLM은 RGB 영상을 입력으로 받으므로, Bayer raw를 고정된 간이 ISP(demosaic, WB, gamma)로 렌더링해서 보여줘야 함.
- ROI가 200×200으로 작으므로, VLM 입력 해상도에 맞춰 확대하거나 HW 출력과 GT를 나란히 붙여서 보여주는 방식을 검토해야 함.
- 오픈 VLM이 SFR 저하나 moiré 같은 미세한 차이를 구분할 수 있는지는 검증이 먼저 필요함.
- 같은 입력에도 판정이 달라질 수 있으므로(일관성), 반복 판정이나 pairwise 비교 등으로 안정화가 필요할 수 있음.
성공 기준 (평가 지표)
Q1. 화질 판정 VLM
- 사람 튜너의 판정(쌍별 선호, 결함 종류·심각도, 우선순위)과의 일치도. 사람끼리의 일치도를 천장으로 보고 비교함
- 같은 입력을 반복 판정했을 때의 일관성
- 미세한 차이(레지스터를 조금 바꾼 쌍)에서도 성능이 유지되는지
- 고전 지표, 전용 모델, 기존 IQA VLM보다 사람 판정에 더 가까운지
- 보지 않은 장면, 자연 영상에서도 유지되는지
Q2. VLM 기반 최적화
- 최종 화질 (정량)
- 해상력: SFR / MTF (측정 가능한 ROI 한정, 평가용으로만 사용)
- Moiré, false color, zipper 등 아티팩트 정도
- 참고용 일반 지표: L1, PSNR, SSIM, LPIPS
- ROI 간 밸런스
- 평균 성능뿐 아니라 최악의 ROI 성능(worst-case)도 함께 봄. 특정 ROI가 크게 희생되지 않아야 함.
- 최종 화질 (사람 평가)
- 화질 전문가의 A/B 선호도 평가 (자연 영상 포함)
- 비교 대상
- 수동 튜닝 결과
- L1 역전파 최적화 결과 (GT 샤프닝 등 사람이 수정한 버전 포함)
- 사람 개입 감소
- ①~③에 사람이 들인 시간과 개입 횟수가 얼마나 줄었는지
추가 확인된 사항
- 전체 ROI 1회 forward + 역전파: 1초 미만 (정밀 측정 전). 따라서 안쪽 루프의 역전파 비용은 작고, VLM 판정이 전체 시간의 병목이 될 가능성이 큼.
- 과거 사람 판단 기록: 없음. 따라서 VLM 판정을 검증하려면 사람 판정 데이터(ROI별 결함·우선순위 라벨, pairwise 선호)를 새로 수집해야 함.