fSpy

fSpy는 정지 이미지의 소실점과 원근선을 이용해 가상의 3D 카메라 방향·초점 거리·위치를 추정하는 자유·오픈 소스 응용 프로그램이다. 사진 속 건물·방·사물과 일치하는 3D 장면을 구성하려는 Blender 사용자에게 활용되며, 일반적인 Agisoft Metashape·COLMAP의...

분류3D 그래픽 소프트웨어, 단일 사진에서 3D 카메라 맞춤·시점 추정
개발stuffmatic·fSpy 공동체
플랫폼Linux, Windows, macOS
작성 언어TypeScript·JavaScript·Electron
주요 기능단일 사진에서 3D 카메라 맞춤·시점 추정
원본·교환 형식FSPY 카메라 설정·참조 사진·Blender 교환
공식·참고 자료자료

fSpy는 정지 이미지의 소실점과 원근선을 이용해 가상의 3D 카메라 방향·초점 거리·위치를 추정하는 자유·오픈 소스 응용 프로그램이다. 사진 속 건물·방·사물과 일치하는 3D 장면을 구성하려는 Blender 사용자에게 활용되며, 일반적인 Agisoft Metashape·COLMAP의 다중 이미지 사진측량과는 목적이 다르다.[1]

사용자는 사진에서 실제 세계의 평행한 선들이 만나는 방향을 표시하여 하나 또는 두 개의 소실점을 지정하고 수직·수평·좌표축의 방향과 기준 길이를 설정한다. fSpy는 이를 바탕으로 투영 카메라의 회전·시야각과 대략적인 원점을 계산한다. 카메라 맞춤을 통해 원본 사진 위에 3D 모델이나 그림자를 정렬하여 합성할 수 있다.

fSpy의 계산 결과는 Blender용 가져오기 애드온으로 전달해 뷰포트 카메라와 배경 이미지 등을 설정하는 데 사용할 수 있다. 이 절차는 이미지의 모든 물체를 자동으로 모델링하거나 깊이를 복원하는 작업과 구별된다. 원본 프로젝트와 카메라 파라미터·참조 사진을 함께 보존하면 장면을 다른 도구로 다시 옮기는 데 도움이 된다.[2]

프로젝트는 BLAM이라는 과거 Blender 애드온에서 출발했으며 JavaScript·TypeScript 기반 데스크톱 프로그램과 GPL 3.0 소스 배포를 채택했다. 카메라 파라미터를 다른 3D 그래픽 소프트웨어에도 수동으로 적용할 수 있으나 축·센서 크기·좌표계 규칙의 차이를 확인해야 한다.

BLAM에서 fSpy로

초기 개발

기술 발전

소실점과 원근선 추정

카메라 초점 거리·좌표계

Blender 가져오기와 사진 합성

TypeScript·JavaScript 구현

FSPY·참조 이미지·GPL

  1. fSpy 공식·참고 자료 ↩
  2. fSpy 기술 자료 ↩