OPF(Open Photogrammetry Format) 이해하기
OPF(Open Photogrammetry Format)는 Pix4D에서 개발한 완전 개방형 무료 사양으로, 다양한 소프트웨어 도구와 사용자 간에 사진측량 프로젝트 데이터의 저장, 교환 및 공동 사용을 표준화합니다. 일관되고 확장 가능한 프로젝트 형식을 통해 최종 사용자와 개발자 모두를 위한 데이터 공유, 통합 및 처리를 간소화합니다.
이 기사에서는
OPF란 무엇인가요?
주요 기능은
OPF는 왜 중요한가요?
OPF 프로젝트 구성 요소는 무엇인가요
OPF를 실제로 사용하는 방법
개발자 접근
호환 도구는 무엇인가요?
더 자세히 알아보세요.
OPF란 무엇인가요?
OPF(Open Photogrammetry Format)는 Pix4D에서 개발한 개방형 무료 사진측량 데이터 파일 형식 사양입니다. 다양한 소프트웨어 제품과 사용자 간의 사진측량 데이터 저장, 교환 및 협업을 용이하게 하기 위해 설계되었습니다. OPF 프로젝트는 일반적으로 카메라 매개변수 및 포인트 클라우드와 같은 다른 프로젝트 구성 요소를 참조하는 메인 프로젝트 컨테이너 파일(.opf)로 구성됩니다.
특징
- 사람이 읽기 쉬운 형식: 최대한 간단하고 사람이 읽기 쉬운 JSON 파일을 기반으로 합니다. 텍스트 기반 표현이 비실용적인 경우(예: 포인트 클라우드 데이터) 효율적인 바이너리 형식을 활용합니다.
- 구조화된 데이터: 사진측량 데이터를 구조화된 방식으로 구성하여 정보에 쉽게 접근하고 검색할 수 있도록 합니다. 데이터 모델에는 사진측량 프로세스의 입력 및 출력에 대한 정보가 모두 포함됩니다
- 입력 데이터: 입력 카메라에 대한 정보(카메라 목록, 입력 카메라 매개변수), 좌표 참조 시스템, 제어점, 축척 및 방향 제약 조건 등을 포함합니다.
- 출력 데이터: 카메라 보정 정보(희소 포인트 클라우드, 보정된 카메라)와 밀집 재구성 포인트 클라우드를 포함합니다.
- 효율적인 저장: 본 사양에 포함된 ATP(희소 포인트 클라우드) 및 밀집 포인트 클라우드 형식은 개방형 표준 glTF를 기반으로 하며 메모리 매핑 및 공간 분할이 가능하도록 설계되었습니다. 이를 통해 대규모 포인트 클라우드의 효율적인 처리와 점진적 렌더링이 가능합니다. 이 형식은 이미지 상의 포인트 가시성, 법선 벡터, 사용자 정의 속성 등의 정보를 유지합니다.
- 유연한 확장 시스템: 높은 확장성과 맞춤 설정 기능을 갖추도록 설계되어 필요에 따라 데이터 표현 방식을 손쉽게 확장할 수 있습니다. 향후 지속적인 개선을 통해 더 다양한 사진측량 출력 형식을 지원할 예정입니다.
- 안정적인 형식: 엄격한 스키마 의미론적 버전 관리 규칙을 따르므로 강력한 호환성을 보장하고 구현자에게 안심을 제공합니다. 유효성 검사를 위해 JSON 스키마가 제공됩니다.
OPF가 중요한 이유는 무엇일까요?
기술 지식이 없는 사용자를 위한 정보입니다
코드를 작성하지 않더라도 사진 측량 프로젝트를 촬영, 처리 또는 검토하는 사용자는 OPF 형식을 통해 여러 가지 실용적인 이점을 얻을 수 있습니다
- 간소화된 데이터 전송: 파일 누락이나 링크 오류에 대한 걱정을 없애줍니다. 동료와 공유하거나 현장 조사 결과를 사무실로 옮겨 처리할 때에도 모든 프로젝트 구성 요소가 그대로 유지됩니다.
- 원활한 통합: OPF는 여러 Pix4D 애플리케이션 간의 원활한 통합을 제공하여 캡처(PIX4Dcatch)에서 처리(PIX4Dmatic) 및 그 이후 단계까지 데이터를 매끄럽게 전송할 수 있도록 합니다. 추가 제품에 대한 지원도 계획 중입니다.
개발자 및 기술 사용자용
자동화 워크플로, 사용자 지정 파이프라인 또는 소프트웨어 통합을 구축하는 사용자에게 OPF는 다음과 같은 주요 이점을 제공합니다
- 일관된 파일 구조 및 메타데이터 접근.
- 기계와 사람이 모두 읽을 수 있는 JSON 기반 구성으로, 상호 운용성과 스키마 유효성 검사를 지원합니다.
- pyopf 와 같은 오픈 소스 도구를 통한 통합 가능성 .
- 확장 메커니즘을 통한 사용자 지정 데이터 지원.
OPF 프로젝트에는 무엇이 들어 있을까요?
OPF 폴더에는 일반적으로 다음 내용이 포함됩니다
- project.opf: 프로젝트를 설명하는 핵심 JSON 파일입니다.
- 입력 데이터:
- 이미지: 복원에 사용된 원본 사진과 해당 입력 매개변수.
- 제어점: 지상 제어점(GCP), 체크포인트, 축척/방향 제약 조건 및 이미지상의 해당 표시.
- 출력 데이터: 보정된 카메라 데이터, 희소 및 밀집 포인트 클라우드(glTF 형식)와 같은 처리된 출력물.
OPF 프로젝트 내의 데이터는 일반적으로 JSON 형식으로 저장됩니다. 포인트 클라우드와 같은 대규모 데이터 세트의 경우 스트리밍 형식으로 glTF가 사용됩니다. OPF 사양은 glTF 파일 형식 하며 사용자 정의 glTF 확장 기능을 통합합니다. 즉, OPF glTF 포인트 클라우드는 완전히 유효한 glTF 파일이지만, 모든 glTF 파일이 반드시 유효한 OPF glTF 포인트 클라우드는 아닙니다.
OPF -glTF 포인트 클라우드 는 오픈 소스 glTF 2.0 표준을 기반으로 구축되었습니다. 효율성을 위해 설계되었으며 다음과 같은 기능을 제공합니다.
- 메모리 매핑 가능성: 데이터를 프로그램 메모리에 직접 매핑하여 빠른 데이터 접근을 지원하며, 느린 파싱 및 로딩 과정이 필요 없습니다.
- 공간 분할: 포인트 클라우드를 관리하기 쉬운 공간 단위로 분할하여 다음과 같은 작업을 수행할 수 있습니다
- 효율적인 처리: 소프트웨어는 포인트 클라우드에서 필요한 부분만 선택적으로 로드하고 처리할 수 있으며, 이는 대규모 데이터 세트를 다룰 때 매우 중요합니다.
- 점진적 렌더링: 이 방식은 포인트 클라우드의 초기 시각화를 빠르게 수행하고 필요에 따라 더 자세한 정보를 불러옵니다. 이는 빠른 응답 시간이 중요한 대화형 애플리케이션에 특히 유용합니다.
OPF-glTF 형식은 포인트 클라우드 형상 정보 외에도 다음과 같은 중요한 메타데이터를 유지합니다
- 이미지상의 지점 가시성: 각 지점을 어떤 카메라가 촬영할 수 있었는지에 대한 정보입니다.
- 법선 벡터: 각 지점에서 표면의 방향을 나타냅니다.
- 사용자 정의 속성: 이 형식은 확장 가능하며 각 지점에 대해 사용자가 정의한 추가 데이터를 저장할 수 있습니다.
실제 OPF 활용
Pix4D의 에코시스템은 OPF와의 원활한 통합을 제공하여 PIX4Dcatch 및 PIX4Dmatic통한 효율적인 엔드투엔드 워크플로우를 구현합니다.
- 데이터 수집: PIX4Dcatch 프로젝트 데이터를 수집합니다. 데이터 수집 과정에서 OPF 폴더가 자동으로 생성됩니다.
- 전송: OPF 폴더를 데스크톱 환경으로 이동하거나 공동 작업자와 공유하세요.
- 열기: PIX4Dmatic 엽니다 project.opf . 모든 관련 데이터가 자동으로 가져와져 처리 준비가 완료됩니다.
이 워크플로는 이미지, 지상 기준점(GCP)을 수동으로 가져오거나 설정을 조정할 필요성을 없애줍니다. OPF 파일을 열기만 하면 바로 처리를 시작할 수 있습니다.
에 대한 자세한 내용은 다음을 참조하십시오 PIX4Dcatch. OPF 사용하기 PIX4Dcatch 으로 PIX4Dmatic
개발자 액세스
OPF는 최종 사용자의 편의성을 고려하여 설계되었지만, 개발자를 위한 고급 기능도 제공합니다
- 오픈소스 pyopf 파이썬 라이브러리를 사용하여 OPF 콘텐츠에 접근하고 수정할 수 있습니다.
- GitHub 에서 제공되는 버전 관리 스키마를 사용하여 OPF 파일의 유효성을 검사합니다 .
- 자동화, 데이터 변환 또는 확장된 처리 워크플로를 위해 OPF를 사용자 지정 파이프라인에 통합하십시오.
맞춤 개발이 없더라도 모든 사용자는 OPF가 제공하는 구조화되고 안정적인 형식의 이점을 누릴 수 있습니다.
OPF 파일 형식을 외부 프레임워크와 통합하는 방법의 예시는 Pix4D Labs의 이 문서. 이 문서에서는 NeRF 도구와 OPF를 함께 사용하는 방법을 설명하고 있으며, 외부 패키지에 OPF를 통합하는 자세한 예시로 활용할 수 있습니다.
호환 도구
- PIX4Dcatch: OPF 프로젝트 파일로 내보낼 수 있는 모바일 캡처 앱입니다.
- PIX4Dmatic: OPF 프로젝트를 가져오고 내보낼 수 있는 데스크톱 사진측량 소프트웨어입니다.
더 알아보기
추가 자료:
- Pix4D 연구소의 OPF: https://www.pix4d.com/labs/opf-open-photogrammetry-format/
- OPF GitHub 사양: https://github.com/Pix4D/opf-spec
- pyopf 툴킷: https://github.com/Pix4D/pyopf