Knowhow 111

Basalt 사용, tag 규격 정하기, 이미지로부터 rosbag 파일 만들기

2022.12.07 - [Knowhow] - Fisheye camera model(KB, UCM, DS 모델) Fisheye camera model(KB, UCM, DS 모델) Introduction fisheye 카메라는 일반적으로 광각을 넘어서 180도 이상을 촬영하는 경우까지 포함하기 때문에 직관적으로 이해하기가 어렵다. 이미지 sensor는 앞을 보고 있는 평면이기 때문에 물리적으 jseobyun.tistory.com 위 글에서 소개한 3가지 모델을 적용하여 직접 광각 카메라의 캘리브레이션을 수행하고자 할 때 Basalt-mirror 라는 소프트웨어를 사용하면 손 쉽게 할 수 있다. 이전 글의 말미에서 DS 모델을 적용하고자 할 때만 추천을 했지만 코드를 뜯어보니 camera_type을 "kb4"..

Knowhow/Vision 2023.01.19

VScode C/C++ 개발 세팅, CMakeLists.txt 이용하기 2

앞선 글을 통해 C/C++ 코드를 실행하려면 CMake를 이용하여 빌드하면 된다는 것을 알았다. 하지만 코드 편집기에서 코딩을 한 뒤에 해당 프로젝트 폴더로 가서 cmake 명령어를 매번 치는 것이 귀찮기 때문에 에디터에 CMake를 연동해서 쓴다. (귀찮음이 편리함을 낳는게 맞는 것 같다... make >> cmake >> cmake in editor) C/C++ 개발 시 많은 에디터가 있지만 가장 많이 쓰이는 것은 VScode일 것 같은데 모듈 형태로 간단하게 연동할 수 있다. Visual studio 랑 다른 것이니 이름 확인하는 걸 잊지 말고 큰 취향이 없다면 VScode를 추천한다. (다른건 다 괜찮은데 윈도우 비주얼스튜디오는 좀...) CMakeLists.txt 파일은 잘 만들어두었다는 전제 ..

VScode C/C++ 개발 세팅, CMakeLists.txt 이용하기 1

Python을 주로 사용하면 코드를 실행시키는 것이 아주 간단하지만 C/C++을 사용해보면 그리 단순하진 않다는 걸 알게 된다. 컴파일, 링크, 빌드, make, cmake 등 온갖 키워드가 등장하는데 제대로 이해하고 있지 않다면 코드를 실행하는 것까지가 큰 산으로 느껴진다. 그리고 기초적인 내용이라 누구에게 물어보기도 애매하고 어떻게 실행해요?라고 묻는 격이라 부끄끄러워서 더 어렵게만 느끼지더라. 따라서 13~15년도 학교에서 C/C++ 문법만 배운 것이 전부인 내가 주먹구구식으로 개발이 가능할 정도까지 필요했던 간단한 개념을 정리하고 함께 가장 많이 쓰이는 에디터, VScode에서 개발 환경 세팅하는 방법을 소개하고자 글을 적는다. 알고 있어야 하는 기본 개념 1. 인터프리터 언어와 컴파일 언어 한 ..

자주 사용하는 Docker command, argument 정리

Docker는 개념부터 시작하면 복잡하고 그 내용을 전부 정리하면 두께가 엄청나지만 실제로 사용하는 내용은 적다. 일반적으로 복잡한 일을 할 때보다 대충 환경 설정 귀찮아서 이미지 받은 뒤 컨테이너 만들어서 편하게 해보려고 쓰는 경우가 많기 때문에 쓰는 command와 argument (편의 상 태그라고 하겠다.) 만 쓰는 경우가 많다. 최소로 외워둘 커맨드 docker images : 받은 이미지 리스트 출력. docker ps -a : 현재 컨테이너 리스트 출력. docker rm CONTAINER_NAME : 컨테이너 삭제. --rm 태그 빼먹었을 때 자주 씀. docker rmi IMAGE_NAME:TAG : 이미지 삭제. docker start CONTAINER_NAME : 컨테이너 켜기. do..

Knowhow/Docker 2023.01.05

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

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/Others 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

COLMAP read bin/txt/ db files in python

COLMAP을 사용하고 나면 나오는 결과 파일은 총 ( images, cameras, points3D ) 3개다. bin 파일이나 txt 파일로 저장되도록 설정이 되어있는데, 이를 주로 사용하는 python으로 가져오기가 매번 heuristic하기엔 번거로워 read function을 작성했다. 아래 함수를 통해서, colmap의 결과값을 각 요소 별로 list 형태로 얻을 수 있다. 이후에 원하는 형태로 사용하면 된다. 먼저 bin 파일을 갖고 있을 경우, txt 파일로 변환하는 것으로 시작한다. colmap model_converter --input_path /path/to/dir-of-bins/ --output_path /path/to/dir-of-txts/ --output_type TXT 1. c..

Knowhow/Vision 2022.07.13

COLMAP[GUI] multi-camera setting

COLMAP은 워낙 유명해서 3D vision한다고 하면 한 번쯤은 들어봤을 것이다. 링크(https://colmap.github.io/index.html) 에서 소개하는 바와 같이 SfM과 MVS를 손쉽게 돌릴 수 있도록 도와주는 tool 혹은 코드라고 생각하면 된다. 설치가 복잡했으나, 최근에는 그냥 sudo apt install colmap 명령어 한 번으로 설치할 수 있고 튜토리얼 또한 잘 정리되어 있어서 사용성도 매우 뛰어난 장점이 있다. (단, 이렇게 깔면 CUDA를 사용하는 기능에서는 제한적임) 이 글에서는 튜토리얼에서 나오지 않지만, 꽤나 자주 벌어지는 상황이어서 매번 찾기 귀찮은 multi-camera setting에서의 colmap 사용법을 정리하고자 한다. 튜토리얼은 single-vi..

Knowhow/Vision 2022.07.07