분류 전체보기 538

MonoSDF: Exploring Monocular Geometric Cues for Neural Implicit Surface Reconstruction

내 맘대로 Introduction monoSDF는 3D surface reconstruction인데 IDR 기반으로 하되, omnidepth에서 나오는 scaless depth와 normal을 pseudo GT처럼 활용해서 넣어주는 형태다. Omnidepth가 꽤나 정확한 depth, normal을 뱉어준다는 것을 전제로 하기 때문에 이미지를 많이 촬영하지 않아도 이 데이터의 힘으로 학습이 잘 되는 경향이 있다. 따라서 이미지가 좀 적어도 성능 좋게 복원할 수 있다는 것이 장점이다. 메모하며 읽기 전체 흐름은 위와 같다. 주목해야할 점은 D와 N으로 적혀있는 Omnidepth output을 supervision으로 추가했다는 점과 다양한 represenation을 다 테스트해보았다는 점이다. 전체 파이프..

Paper/3D vision 2023.10.17

StreetSurf: Extending Multi-view Implicit Surface Reconstruction to Street Views (arXiv2023)

내 맘대로 Introduction 이 논문은 3D surface reconstruction을 street view에 어떻게 효과적으로 적용할지 고민한 논문이다. 전반적인 논문 느낌이 연구적으로 어떻게 거리뷰에 적용할지 설명하는게 아니라 이것저것 붙여보면서 어떻게든 잘 되게 만들어보려고 노력한 흔적을 설명한 느낌이다. 그래서 새로운 아이디어가 반짝이는 논문이라기 보다 어떤 걸 조립하면 성능이 잘 나오는지 보여주는 조립형 논문 같다. 핵심아이디어는 object-centric으로 sphere 공간을 잡고 시작하는 것을 non object- centric cuboid 공간으로 잡은 것, hash table을 써서 가속한 것, 근-중-장거리 모델을 따로 두어 성능을 끌어올린 것 정도 되겠다. 참고로 거리뷰가 시점..

Paper/3D vision 2023.10.16

Github.io

github.io를 이용해 개인 웹사이트를 하나 만들었다. 소개 자료를 PPT나 PDF로 만들었더니 접근성이 아쉬워서 공개된 형태로 하나 제작했다. http://jseobyun.github.io jseobyun.github.io About me Hello, I’m Jongseob Yun. Thanks to visit this page! I’ve focused on computer vision and computer graphics that handle human stuffs(face, body pose/shape) and 3D geometric tasks (SfM, MVS, surface reconstruction, neural rendering). I am current jseobyun.github.io

What I made 2023.10.01

STL vector 팁들

.reserve() vs .resize() 이 두 개를 검색해보면 둘 다 vector의 크기를 사전에 할당해두는 함수들이라고 나오고 혼동하기 쉬운데, 전자는 초기값이 없고 후자는 있다는 차이 이상의 내용이 있다. 먼저 .reserve(A) 를 사용하면 A만큼의 메모리 공간을 해당 vector에 부여하고 잡아두는 것이 맞다. 하지만 메모리가 먼저 잡혀있는 것이지 실제 vector 사이즈가 A로 만들어지는 것이 아니다. 따라서 indexing이 안된다. 따라서 .reserve()를 사용하는 경우는, push_back으로 vector에 계속 넣어줄 것인데 이 과정에서 사이즈를 명시하지 않으면 내부적으로 확장하고 복사하고 확장하고 복사하고 하면서 시간 잡아먹으니 이 시간 효율을 높이고 싶을 때 쓴다. 반대로 ...

TBB 팁

1) TBB는 install 하고 나서 CMakeLists.txt 내에 find_package(TBB REQUIRED)만 추가해준다면 못 찾는 경우가 빈번함. 아래에 적힌 2개의 문장처럼 뭔 오류인지 모르겠는 말이 계속 나온다면 TBB를 못찾고 있는게 맞다. undefined reference to `tbb::interface7::internal::task_arena_base~~~ tbb::interface9::global_control::global_control(tbb::interface9::global_control::parameter, unsigned long) ~~~ 해결법은 미리 cmake되어서 모듈화되어있는 TBB를 연결해주는 방법이다. https://github.com/justusc/Fin..

Boost serialization 팁들

Tips 1) shared_ptr 와 같이 쓴 변수들은 A에 serialize() overriding을 해줬더라도 오류가 난다. 다음 include 필수. 세트로 도 잊지 말자. #include #include 2) 다음와 같은 오류명이 잔뜩 뜰 수 있음 [build] /usr/bin/ld: ../core/libsfm.so: undefined reference to `boost::archive::detail::basic_iarchive::next_object_pointer(void*)' [build] /usr/bin/ld: ../core/libsfm.so: undefined reference to `boost::archive::basic_binary_oprimitive::init()' [build] /u..

Boost serialization

c++에서 새로운 클래스를 정의하고 이로 만든 객체를 저장하고 싶을 경우가 있다. 나는 대표적으로 Frame이라는 클래스 내에 이미지, 이미지 경로, 이미지 feature, intrinsic parameters 등 전부 담아둔 뒤, 모든 입력 이미지를 Frame 객체로 만들어두는 작업에서 필요성을 느꼈다. 이 경우 저장을 어떻게 할지 멤버 변수마다 하나하나 지정해줘서 저장 함수를 구현해야 하기 마련인데 이게 도통 귀찮은 일이 아니기 때문에 이를 지원하는 기능이 boost에 있었다. boost의 serialization 기능을 이용해 객체 자체를 직렬화해버리고 그냥 파일에 써버리는 것이다. 당연히 human readable 형태는 아니지만 deserialization 기능을 이용해 다시 원복했을 때 저장했..

CMake 백과사전

CMake를 다룰 때 개념을 잡기 위해 반드시 보면 좋을 문서를 찾았다. 제목이 쪼오오금 도움이 되는 문서지만 실제로 도움이 많이 된다. 내용을 옮겨적기에 방대한 양이지만 다 쓸모있는 내용들로 길어진 것이어서 다 읽어볼만 하다. https://gist.github.com/luncliff/6e2d4eb7ca29a0afd5b592f72b80cb5c CMake 할때 쪼오오금 도움이 되는 문서 CMake 할때 쪼오오금 도움이 되는 문서. GitHub Gist: instantly share code, notes, and snippets. gist.github.com