포스트

이미지 1,000장 3D 재구성에서 OOM을 피하려면: VGG-T³

VGG-T³가 수천 장의 장면 정보를 고정 크기 MLP에 압축하는 원리와 54초 성능 수치의 조건, 메모리, 망각, 재구성 품질 검증법을 설명합니다.

이미지 1,000장 3D 재구성에서 OOM을 피하려면: VGG-T³

이미지가 수백, 수천 장으로 늘어날 때 어텐션 메모리가 터진다면, VGG-T³는 장면 정보를 가변 KV 캐시에 모두 보관하지 않고 고정 크기 MLP의 가중치로 테스트타임 학습해 누적합니다. 이 선택은 메모리 확장을 완화하는 대신 장면별 최적화 시간과 고정 용량에 따른 세부 손실을 받아들입니다. 따라서 1,000장 처리 속도만 보기보다 뷰 수가 늘 때 메모리, 기하 오차, 초반 장면 망각이 어떻게 변하는지 함께 확인해야 합니다.

왜 고정 크기 MLP인가

Softmax attention은 뷰가 늘어날수록 서로 비교할 토큰 쌍이 증가해 시간과 메모리가 $O(N^2)$로 커질 수 있습니다. VGG-T³는 각 입력 뷰의 기하 정보를 순차적으로 MLP에 학습시키며 장면 표현의 크기를 고정하려 합니다. 입력 수에 대해 $O(N)$으로 확장하는 것이 목표입니다.

이 방식은 단순히 오래된 뷰를 버리는 것과 다릅니다. MLP 가중치에 전역 장면 정보를 압축해 새 관점의 위치 추정과 포인트 맵 재구성에 다시 사용합니다. 다만 고정 용량에 매우 큰 장면을 넣으면 세부 정보가 손실될 가능성도 함께 평가해야 합니다.

장면을 가중치에 저장한다는 뜻은 무엇인가

일반적인 KV 문맥은 입력 뷰가 추가될수록 참조할 표현도 늘어납니다. 필요한 세부를 직접 다시 볼 수 있지만 저장량이 커집니다. VGG-T³가 지향하는 고정 MLP는 지금까지 본 장면을 같은 수의 파라미터 안에 흡수합니다. 뷰 수가 증가해도 표현의 외형적 크기는 고정되지만, 새 정보가 들어올 자리를 만들기 위해 이전 정보가 압축된다는 점이 핵심입니다.

이 차이는 “선형이면 품질도 그대로”라는 뜻이 아님을 보여줍니다. 반복되는 복도처럼 비슷한 관측은 압축하기 쉬울 수 있지만, 서로 다른 방과 작은 물체가 계속 추가되는 장면은 같은 용량에서 경쟁합니다. 평가할 때는 전체 평균 오차와 함께 초반, 중반, 후반 구간의 재구성 품질을 따로 확인해야 합니다. 마지막 뷰는 선명한데 초반 영역만 흐려진다면 계산 복잡도와 별개로 기억 용량의 한계가 드러난 것입니다.

새 관점 질의도 두 종류로 나누는 편이 좋습니다. 이미 관측한 위치 주변을 보간하는 경우와 멀리 떨어진 관점을 추정하는 경우입니다. 후자를 포함하지 않으면 MLP가 장면의 전역 구조를 저장했는지, 최근 입력을 재생했는지 구별하기 어렵습니다.

1,000장 54초는 어떤 주장인가

원문은 1,000개 이미지 처리에 54초, 기존 비교 대비 11.6배 속도 향상을 보고합니다. 이 수치는 논문의 하드웨어와 입력 해상도, 비교 구현 조건에 묶여 있습니다. 임의의 GPU나 고해상도 원본에서 같은 시간이 보장되는 것은 아닙니다.

비교할 때는 총 시간뿐 아니라 최대 메모리, 뷰당 증가량, 포인트 맵 오차, 보지 못한 이미지의 위치 추정 정확도를 함께 봐야 합니다. 기존 방법이 OOM으로 중단된 사례와 끝까지 실행된 사례도 구분해야 속도 비율을 제대로 해석할 수 있습니다.

속도 표를 재현하려면 입력 준비와 최적화, 최종 예측 시간을 같은 경계로 재야 합니다. 한 방법은 전처리를 제외하고 다른 방법은 포함하면 54초나 11.6배라는 비율을 그대로 비교할 수 없습니다. 첫 실행의 모델 로딩과 컴파일 비용을 포함했는지, 장면마다 새로 드는 비용인지도 구분합니다.

뷰 수를 10, 100, 1,000처럼 단계적으로 늘린 실험이 유용합니다. 각 단계에서 최대 GPU 메모리, 총 처리 시간, 뷰당 증가 시간, 기하 지표를 기록하면 선형 확장 주장이 자신의 환경에서도 이어지는지 볼 수 있습니다. 1,000장 한 지점만 재면 중간부터 품질이 급격히 떨어지거나 최적화가 불안정해지는 구간을 놓칠 수 있습니다.

입력 해상도와 카메라 조건도 고정합니다. 장수만 같아도 고해상도 이미지와 넓은 시점 변화는 다른 부담을 줍니다. 비교 모델의 입력 축소나 프레임 선별 여부를 맞추지 않으면 메모리 절감이 아키텍처 때문인지 더 적은 정보 때문인지 판단할 수 없습니다.

오프라인 재구성과 실시간 스트리밍은 다르다

VGG-T³의 Test-Time Training은 장면마다 MLP를 갱신하는 최적화 과정입니다. 대규모 오프라인 맵핑에는 적합할 수 있지만 수 밀리초 안에 즉시 결과를 내야 하는 스트리밍에는 업데이트 비용이 병목이 될 수 있습니다. 3D Gaussian Splatting 계열과 비교할 때도 포인트 기하와 최종 텍스처 품질을 같은 지표로 보아서는 안 됩니다.

입력 순서도 시험해야 합니다. 비슷한 시점이 연속될 때와 장면을 넓게 훑는 순서에서 같은 MLP가 동일한 기하를 보존하는지, 후반 뷰를 학습하며 초반 영역을 잊지 않는지 확인해야 합니다. 처리 속도가 선형이어도 순서에 따라 결과가 흔들리면 대규모 자동 파이프라인의 재현성이 낮아집니다.

원문에 실린 Python 클래스는 개념적 의사 코드이며 실제 네트워크, 학습률, 반복 횟수, 렌더링 함수가 없습니다. 재현 가능한 구현으로 사용할 수 없습니다. 도입 전에는 대상 데이터의 뷰 수를 단계적으로 늘려 메모리 선형성과 디테일 손실이 동시에 어떻게 변하는지 측정해야 합니다.

테스트타임 학습은 어디에서 실패할까

장면마다 가중치를 갱신하므로 학습률, 업데이트 횟수, 입력 순서가 결과에 영향을 줄 수 있습니다. 업데이트가 적으면 새 관측을 충분히 반영하지 못하고, 지나치면 최근 뷰에 맞춰 초반 정보를 덮을 수 있습니다. 같은 이미지 묶음을 원래 순서, 역순, 무작위 순서로 넣고 결과 편차를 비교하면 순서 민감도를 드러낼 수 있습니다.

서로 떨어진 두 공간을 번갈아 입력하는 시험도 도움이 됩니다. 모델이 두 공간을 함께 유지하는지, 새 공간을 학습한 뒤 이전 공간 질의가 무너지는지 확인합니다. 긴 영상에서는 카메라가 출발점으로 돌아오는 구간을 따로 살펴 전역 정합이 회복되는지도 봅니다. 처리 성공 여부만 기록하면 이런 누적 오차와 망각을 놓치게 됩니다.

최적화 실패에 대비한 운영 절차도 필요합니다. 장면 중간 체크포인트를 저장할 수 있는지, 한 이미지가 깨졌을 때 전체를 다시 시작해야 하는지, 같은 입력과 설정으로 결과가 재현되는지 확인합니다. 오프라인 배치에서는 몇 초의 추가 계산보다 긴 작업을 안정적으로 재개하는 능력이 더 중요할 수 있습니다.

어떤 지표로 도입 여부를 결정할까

목적이 카메라 위치 추정인지, 포인트 기하인지, 보기 좋은 새 시점 렌더링인지 먼저 정해야 합니다. 세 목적은 같은 출력처럼 보여도 실패 비용이 다릅니다. 위치가 틀렸는데 렌더링이 그럴듯할 수 있고, 기하는 맞아도 텍스처 품질이 부족할 수 있습니다. 3D Gaussian Splatting 계열과 비교할 때 결과 형식과 목표 지표를 맞춰야 하는 이유입니다.

도입 기준은 “1,000장을 돌렸다”보다 구체적이어야 합니다. 현재 방식이 OOM이 되는 장수에서 끝까지 처리되고, 허용한 기하 오차 안에 들며, 초반 영역의 품질 저하가 제한되고, 전체 배치 시간이 운영 예산을 만족하는지 봅니다. 어느 하나를 충족하지 못하면 뷰 선별이나 장면 분할 같은 더 단순한 기준선과 다시 비교할 필요가 있습니다.

VGG-T³가 유리한 후보는 모든 입력을 모은 뒤 장면별 처리를 기다릴 수 있고, 가변 문맥의 메모리가 실제 병목인 대규모 오프라인 재구성입니다. 즉시 갱신되는 스트리밍 지도나 작은 이미지 묶음에서는 테스트타임 학습의 복잡성이 절감한 메모리보다 클 수 있습니다. 자신의 병목이 어디인지 확인한 뒤 실험 규모를 키우는 것이 안전합니다.

장면을 나눌지 한 번에 압축할지는 어떻게 정할까

한 MLP에 모든 뷰를 넣는 것이 언제나 최선은 아닙니다. 건물의 층이나 촬영 구간처럼 자연스러운 경계가 있다면 장면을 나눠 각 표현의 용량 경쟁을 줄이는 기준선도 만들 수 있습니다. 대신 나눈 장면 사이의 좌표 정합과 경계 영역 중복을 처리해야 합니다. 한 번에 처리한 결과와 분할 결과를 같은 전역 좌표와 품질 지표로 비교해야 선택할 수 있습니다.

중복 프레임을 줄이는 더 단순한 방법도 기준선에 포함합니다. 유사한 뷰를 선별했을 때 메모리가 충분하고 품질이 유지된다면 테스트타임 학습의 운영 복잡성이 필요하지 않을 수 있습니다. 반대로 프레임 선별이 작은 구조를 지우거나 넓은 장면에서 여전히 OOM이라면 고정 크기 표현의 이점이 분명해집니다.

최종 산출물을 저장하고 다시 불러오는 비용도 측정합니다. 장면별로 학습한 MLP를 배포하거나 보관해야 한다면 체크포인트 크기, 로딩 시간, 버전 호환성이 운영 비용에 들어갑니다. 원본 이미지를 다시 처리하지 않고 같은 새 관점 질의를 재현할 수 있는지 확인해야 오프라인 압축의 실제 효용을 판단할 수 있습니다.

결론적으로 VGG-T³는 장수만 보고 선택하는 기술이 아닙니다. 입력 증가에 따른 메모리 문제, 허용 가능한 압축 손실, 장면별 최적화 대기 시간을 한 표에 놓고 현재 파이프라인과 비교해야 합니다. 세 조건이 동시에 맞을 때 54초라는 보고 수치가 유용한 실험 출발점이 됩니다.

arXiv 논문, 논문 페이지

함께 읽으면 이해가 이어지는 글

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.