분류 전체보기 439

Camera undistortion (UCM, DS model)

2022.12.20 - [Knowhow] - Camera undistortion (pinhole, KB model)에 이어 UCM 카메라와 Double Sphere 카메라의 undistortion에 대해 설명해보고자 한다. 결론부터 말하자면, UCM 카메라와 DS 카메라는 distortion이 큰 의미가 없다. 애초에 UCM와 DS 모델은 3차원 구를 이용해 모델의 표현력을 높였기 때문에 distortion이 크게 나오지 않는다. 모델 자체에 distortion이 최대한 내포되어있도록 설계되어 있다. UCM은 구를 이용해 표현하지 못한 부분을 살짝 커버하는 정도의 distortion이 필요하며, DS 모델은 distortion 자체가 없다. 사실 distortion 고려하지 않고 그냥 사용해도 웬만한 경..

Knowledge/Vision 2022.12.29

PyCharm 사용시, module 'io' has no attribute 'OpenWrapper' 문제

열심히 코딩하던 중 다음과 같은 오류가 나면서 파이참이 멈췄다. Fatal Python error: init_sys_streams: can't initialize sys standard streams Python runtime state: core initialized AttributeError: module 'io' has no attribute 'OpenWrapper' Current thread 0x00007fcc72266740 (most recent call first): 구글링했을 때 PYTHONPATH가 어쩌구 저쩌구 나오는데 원인은 단순하다. 현재 프로젝트 내에 io 라는 이름의 폴더나 파일이 있기 때문이다. 해당 파일을 Refactor 해주면 간단히 해결된다. 한참 시간 쓴게 허무하다.

Camera undistortion (pinhole, KB model)

이전 글 2022.12.07 - [Knowhow] - Fisheye camera model(KB, UCM, DS 모델) 에서 다음과 같은 논문의 말이 이해가 안된다고 적은 바 있다. We propose the Double Sphere (DS) camera model that better fits cameras with fisheye lenses, has a closed-form inverse, and does not require computationally expensive trigonometric operations. 특히나, "a closed-form inverse"가 무엇인지 이해가 안되었는데, 카메라 모델 전반에 대해 조금 더 공부해보고 코드를 구현하던 중 unprojection을 정확하게 구할..

Knowledge/Vision 2022.12.20

Fisheye camera model(KB, UCM, DS 모델)

Introduction fisheye 카메라는 일반적으로 광각을 넘어서 180도 이상을 촬영하는 경우까지 포함하기 때문에 직관적으로 이해하기가 어렵다. 이미지 sensor는 앞을 보고 있는 평면이기 때문에 물리적으로 180도 이상은 담을 수가 없는데 분명 이미지에는 뒤에서 온 빛도 맺혀있기 때문이다. 애초에 말이 안되는 상황을 다양한 렌즈의 조합으로 억지로 만들어내는 카메라이다 보니 fisheye 카메라를 우리가 흔히 다루는 pinhole 카메라와 비슷한 수준으로 단순화하는데는 직관적이기보다 상상의 나래를 편 독특한 아이디어들이 필요했다. 이러한 독특한 아이디어는 실제 물리적인 부분과 매칭이 잘 되지 않고 가정으로 시작하는 부분이 있기 때문에 직관적으로 이해가 잘되지 않는다. 그래서 방법론에서 설명하는 ..

Knowledge/Vision 2022.12.07

Theseus tutorial : simple pose estimation

NeuraIPS2022, facebookresearch에서 Theseus 라는 이름으로 differentiable non-linear optimization library를 공개했다. 프로젝트 페이지의 링크는 다음과 같다. https://sites.google.com/view/theseus-ai/ Theseus Theseus is an efficient application-agnostic library for building custom nonlinear optimization layers in PyTorch to support constructing various problems in robotics and vision as end-to-end differentiable architectures. S..

Knowhow/Vision 2022.11.24

torch.cdist 사용 시 유의점

torch.cdist 는 document에 따르면 다음과 같은 기능을 한다. 요약하자면, tensor와 tensor 간의 distance matrix를 반환해주는 함수라고 할 수 있다. 대표적으로 3D points 간 거리 계산에 유용하게 쓰인다. x,y,z로 표현 되는 3D point 집합 X와 Y가 있고 각각 N개, M개의 3D point로 구성되어 있다고 했을 때, X와 Y 집합 간 서로 최단 거리로 이웃한 점들을 선별할 때나 특정 거리 이내의 이웃한 점들은 선별할 때 자주 사용하게 된다. 하지만, 가끔 제대로 기능하지 않는 듯한 모습을 보일 때가 있어 이를 정리하고자 한다. "가끔 제대로 기능하지 않는 듯한 모습"은 크기가 25 이상인 경우에 발생했다. 위 document에 따르면 P나 R이 25..

Django tips

1. django는 프레임워크 개념이기 때문에 일반적으로 project를 직접 만들고 하나하나 python script를 작성할 필요없이 명령어로 project를 생성할 수 있다. 이는 framework project가 되겠다. django-admin startprojeect PROJECT_NAME 1-1. 위 1. 방식으로 만드는 것은 튜토리얼 차원에서 좋고, 나중에 다른 사람과 협업을 고려하여 확장성이 좋게 구현할 때는 좋지 않는 초기 설정 방식이다. mkdir PROJECT_NAME cd PROJECT_NAME git init git remote ~~~ pipenv --three pipenv shell pipenv install Django django-admin startproject config..

Knowhow/Web 2022.07.21

COLMAP[CLI] SfM/MVS with known camera parameters and poses

2022.07.07 - [Knowhow] - COLMAP[GUI] multi-camera setting 글에서 간접적으로 알 수 있듯이, COLMAP을 사용할 때 미리 알고 있는 카메라 파라미터가 있을 때, SfM 및 MVS의 최적화 과정에서 해당 파라미터를 제외할 수 있다. 앞선 글이 카메라 intrinsic parameter를 알고 있을 때 어떻게 반영하는지 포함했다면, 이 글에서는 카메라 intrinsic parameter와 더불어 카메라 자세까지 주어졌을 때 이를 어떻게 반영하는지 정리하고자 한다. 하나 참고할 점은, GUI를 사용하지 않고 CLI로 사용하는 방법을 정리한다. 왜냐하면, 카메라 파라미터 중 intrinsic parameters를 알고 있는 경우, 카메라는 보통 수 대에 그치기 때문..

Knowhow/Vision 2022.07.14

COLMAP write txt files in python

기존에 갖고 있던 데이터를 COLMAP format에 맞추어 변형하는 코드를 정리하고자 한다. COLMAP을 사용하고자 하는 경우가 보통 SfM, MVS를 통해 3D point를 얻어내기 위함이기 때문에 points3D.txt에 대한 코드는 정리하지 않았다. (이미 points3D.txt가 있는 경우에는 COLMAP을 사용하지 않을테니...) images.txt와 cameras.txt 형태로 데이터를 정리하는 코드만 정리하고자 한다. 1. images.txt : pose notation은 https://jseobyun.tistory.com/31 참고 하나 유념할 것은, 일반적으로 quaternion을 사용할 때, x,y,z,w 표기를 사용하는데 colmap은 w,x,y,z 표기를 사용한다. ''' giv..

Knowhow/Vision 2022.07.13