2020년 1월 15일 수요일

OpenMVG 기반 SFM 테스트 결과 및 장단점 분석

2차원 사진에서 3차원 모델 생성을 지원하는 오픈소스인 OpenMVG는 다른 SFM(structure from motion) 보다 문서화가 잘 되어 있지만, 실제 소스를 다운로드 받아 빌드하고 사용하는 과정이 그리 순탄하지는 않다. 이 과정은 다음 링크를 참고하길 바란다.
이 글은 소스를 빌드하고 MVG 환경을 만든 후 테스트를 수행한 결과를 나눔한다. 앞의 글에서는 드론, 카메라, 스마트 폰을 이용해 사진을 촬영하고 MVG로 테스트해 보았다. 이 글은 그 중에 누구나 가지고 있는 스마트폰으로 대상물을 촬영한 이미지로 3차원 포인트 클라우드 생성 결과를 분석한 것이다.

이미지 촬영
다음과 같이 스마트폰(iPhone 8)으로 건물을 촬영하였다. 
한국건설기술연구원 일산 본관1동 사진

실외 SFM 처리 결과
14장 사진을 OpenMVG의 MvgMvs_Pipeline 파이썬 프로그램을 이용해 SFM 처리를 해 보았다. 처리 전에 카메라 특성값을 찾아 파이썬 소스코드 해당 옵션 및 수치를 수정한후 실행하였다. 다음은 그 결과이다.

결과를 보면 포인트 클라우드 품질이 그리 나쁜편이 아니라는 것을 알 수 있다. 결과물에서 문제가 있는 부분은 다음과 같다.
  • 사진 간 이미지 중첩이 낮은 경우 포인트 누락 발생
  • 반사 재질에서 포인트 누락 및 편차 발생
  • 촬영 각도에 따라 색상 재질이 바뀌는 대상에서 포인트 누락 및 편차 발생
메쉬 처리 결과
다음은 Dense mesh 결과이다.

일반적인 사진 측량 소프트웨어 결과물과 유사한 결과를 얻을 수 있다. 다만, 사람, 나무 같은 부분에서 튀는 포인트, 노이즈 포인트 등으로 인해 메쉬가 왜곡된 곳을 발견할 수 있다.

참고로, 메쉬 처리는 Trianglation 기법 중 하나인 Delaunay 삼각화 기법을 사용한다. 이런 이유로 매우 많은 메모리를 사용하는 데, GPU를 사용할 경우 속도는 개선되지만, 고가의 GPU가 필요하고, CPU를 사용할 경우 저가 컴퓨터에서 실행 가능하나 처리 속도가 매우 느리다. 이 데이터의 경우 한 시간 이상 메쉬처리가 진행되었다. 불필요할 경우, SFM 처리 파이프라인에서 제외하는 것이 낫다.

실내 SFM 처리 결과
실내 SFM 처리를 위해, 사무실 공간을 아이폰으로 사진촬영한 후 작업해 보았다. 결과는 다음과 같다.
오피스 SFM 결과

SFM은 사진 오버랩 최소 30~60%이어야 제대로 매칭되는 특징점을 계산할 수 있다. 이런 이유로 오버랩이 별로 없는 상부, 하부, 양끝 부분은 포인트 클라우드가 없으며, 오버랩이 많이 된 중간 부분은 점군이 많이 생성된 것을 확인할 수 있다.

실내 복도 SFM 처리 결과
실내 복도 부분은 촬영 시 대상물에 대한 카메라 각도가 제약되므로 누락이 상대적으로 많이 발생할 수 있다. 이를 확인하기 위해 다음과 같이 사진 촬영하여 처리해 보았다.

결과는 다음과 같다. 

오버랩이 안된 부분은 데이터 누락이 발생한다. 다양한 각도 촬영이 어려워 모서리 직각 부분에 오차가 확인된다.

치수 측정
SFM으로 생성된 점군은 스케일이 없다. MESHLAB을 이용해 다음과 같이 측정해 보았다.

그림과 같이 스케일이 없으므로, 각 사물별 상대적 크기만 비교할 수 있을 뿐이다. 스케일을 적용하려면 control point를 적용해야 한다. 이 부분을 적용하려면 다음 링크를 참고하길 바란다.

마무리
촬영된 사진을 SFM으로 처리한 포인트 클라우드 결과를 비교 분석해 보았다. SFM은 사진측량기술 중 하나이다. 처리 결과 다음과 같은 장점이 있다는 것을 확인할 수 있다.
  • 저가 카메라로 대상물 3차원 모델 생성 가능
  • 고가 LiDAR에 비해 편리함
  • 상대적 크기 비교 가능
  • Control point 적용 시 치수 획득 가능
  • 드론 등 공중 촬영을 통한 대상물 이미지 획득이 용이함
단점은 다음과 같다.
  • 오버랩 어려운 대상물 촬영 시 Missing data 발생
  • 재질이 각도에 따라 달라지는 반사 대상물(창호 등) Missing data, 왜곡 및 Noise 발생
  • SFM 처리 시간 걸림. 입력 이미지가 많을수록 많은 메모리 필요하고, 최소 몇십분에서 하루 이상 시간 필요
  • 주의 깊은 대상물 촬영 필요(오버랩 60% 권장)
  • LiDAR에 비해 낮은 정확도. Control point 미적용시 수십cm 이상 오차. 적용 시 수 cm 오차 가능. 
  • 높은 정확도 요구사항의 경우 세심한 Control point 설정 계획, 촬영 각도 및 간격 등 필요.
  • 카메라 기종 별 Focal length 등 사전 계산 및 설정 필요(Pix4D와 같은 상용 프로그램은 불필요)
이런 부분을 고려해 SFM을 적절히 활용하는 것이 좋다.

댓글 없음:

댓글 쓰기