전체 글 538

세이노의 가르침

읽게 된 계기 독립 서점의 존재를 최근에 알게 되었다. 알만한 출판사를 통해 정말 팔기 위해 쓴 책들이 아닌 개인이 쓰고 싶어서 혹은 공유하고 싶어서 쓴 책 말이다. 세이노의 가르침은 그러한 독립 출판물들의 존재를 알고 나서 알게 된 책인데 거의 대명사 급의 책이라고 해서 읽게 되었다. (정확히는 독립 출판물이라고 보기 어려운 부분도 있지만 ㅎㅎ) 독립 출판물 자체가 개인이 쓰고 개인이 출판한 것이다보니 저자 개인의 목소리 그대로, 날 것이 담겨있는 것이 매력이라고 생각을 했는데, 듣기 좋은 소리가 아닌 정말 적나라한 조언들이 적힌 책일 것 같아 더욱 기대가 되었다. 마침 2023년 3월을 기점으로 공식 출판된다는 소식도 들려 예약 주문을 통해 1달을 기다려 받아 읽었다. 짧은 평 후기 책에 빠져들어 읽..

Book/Motivation 2023.04.02

[Human] ICON: Implicit Clothed humans Obtained from Normals

ICON: Implicit Clothed humans Obtained from Normals내 맘대로 Introduction그림만 보면 영상으로부터 animatable avatar를 만들어내는 논문 같지만 실상은 frame by frame으로 3D human reconstruction하는 논문이다. 한마디로 PiFU나 PiFUHD 같은 결과를 얻고자 하는 논문이다. sequence를 쓰는 부분이나 animatable avatar를 만드는 부분은 SCANimate를 변형해서 뒤에 갖다 붙였기 때문이다. 변형 SCANimate까지를 contribution으로 가져가기 때문에 약간의 논문이 헷갈린다. SCANimate 논문은 이전 글 2023.03.30 - [Reading/Paper] - [Human] SCA..

Paper/Human 2023.03.31

[Human] SCANimate: Weakly Supervised Learning of Skinned Clothed Avatar Networks

SCANimate: Weakly Supervised Learning of Skinned Clothed Avatar Networks내 맘대로 Introduction이 논문은 3D Scan으로 얻은 human point cloud가 여러 sequence로 있을 때, 해당 사람의 animatable avatar를 생성하는 방법을 소개한다. 한마디로 scan to avatar 방법이다. 논문은 크게 두 단계로 나뉘며, 첫번째는 Scan sequence 하나 하나마다 canonical pose, 즉 기본 자세로 unpose하는 단계이고 두번째는 unposed scan sequence를 모두 다 합쳐 하나의 아바타로 만드는 단계이다. 한 사람을 정밀 복원하는 것이 목표로 다른 사람까지 복원해내는 범용적인 형태가 아..

Paper/Human 2023.03.30

Trifocal tensor 이해하기

Trifocal tensor는 epipolar geometry에 등장하는 fundamental matrix의 카메라 3대 버전이라고 이해하면 된다. 즉, trifocal tensor를 이해한다는 것은 반대로 카메라 3대 간의 geometry를 이해하는 것과 같다. epipolar geometry와 같이 trifocal tensor가 다루는 것은 여전히 point와 line 간의 관계다. epipolar geometry에서 한 카메라 이미지에 찍힌 점은 다른 카메라 이미지 상에 선으로 나타난다는 것이 핵심이듯이 trifocal tensor가 다루는 geometry에서는 한 카메라 이미지의 점이 다른 카메라에서 어떻게 등장하는지가 핵심이다. 다만 그 경우의 수가 point-line-line, point-li..

Knowledge/Vision 2023.03.30

[Depth] Practical Stereo Matching via Cascaded Recurrent Network with Adaptive Correlation

Practical Stereo Matching via Cascaded Recurrent Network with Adaptive Correlation 내 맘대로 Introduction 이 논문은 제목에 그대로 Stereo matching 논문인데 "rectification 후 epipolar line을 따라 search한다." 라는 기본 stereo matching pipeline 에서 "epipolar line을 따라"를 변경한 논문이다. rectification은 완벽할 수 없기 때문에 (실제로 내가 해봐도 pixel 수준으로 align되도록 하는 것은 힘들더라) 하나의 epipolar line만 따라 search하는 것은 사실 실환경에서는 문제가 있는 접근법이라고 지적하며 rectification 오..

Paper/3D vision 2023.03.28

Epipolar line visualization

여러 카메라 간 상대 자세가 정확한지 판별하는 방법 중 하나로 Epipolar line을 확인하는 방법이 있다. 카메라 자세들이 정확하다면 한 카메라 이미지에서 특징점 하나를 찍었을 때 다른 카메라 이미지에서 그려지는 epipolar line은 같은 특징점을 지나가야 한다. 예를 들어 카메라 0번과 1번를 고려할 때, 카메라 0번 이미지에서 서랍 모서리를 찍었다면 카메라 1번 이미지에 그려지는 epipolar line은 같은 서랍 모서리 위를 지나가야 한다. 이 방법은 카메라 자세 정확성을 평가할 GT가 없을 때 정성적으로 평가할 수 있는 방법 중 가장 직관적이고 정확하다. 이 글에서는 위와 같은 목적으로 epipolar line을 그려보고 싶을 때 활용할 수 있는 Visualizer 코드를 기록해두고자..

Knowhow/Vision 2023.03.24

C++ 코드 build 시, C++ 버전으로 인한 실패 해결법

C++ 코드를 build하는 과정에서 CMake, make를 한 번만 쳐서 성공하는 경우는 거의 없다. 환경 설정이 간단하지 않기 때문에 오류명을 보면서 시도의 시도를 거듭해서 build하는 경우가 더 많다. 나 역시도 그런다. 특히 C++을 안 쓴지 오래 돼서 사실 상 초급자가 되어버렸기 때문에 실수 때문이든 몰라서든 자주 구르면서 build를 가까스로 해낸다. 내가 겪은 오류 중 가장 간단해보이지만 원인을 찾아내기까지 가장 오래 걸렸던 C++ 버전 관련 오류의 해결법을 기록해두고자 한다. 오류 양상std와 같은 C++ 대표 namespace에 함수나 변수가 없다는 오류들.thirdparty 설치를 빼먹지 않았음에도 발생하는 not found, missing 오류들.예를 들어, std::integer_..

Linux echo로 파일 처음/끝에 문장 추가하기

echo 커맨드를 많이 봐왔고 많이 써왔지만, 대부분 설치 과정에서 따라하라니까 사용했기 때문에 사용법에 대해서 잘 몰랐다. 여러 사용법이 당연히 있겠지만 그 중 echo를 이용해 파일에 문장을 추가하는 방법에 대해서 기록해두고자 한다. 그냥 파일 열고 손으로 적어도 그만이긴 하지만 최근 DockerFile을 작성하면서 커맨드 라인으로만 모든 작업을 진행해야 할 경우가 있었는데 알아두면 꽤 유용한 것 같다. 근데 자꾸 까먹어서 매번 검색하길래 적어둔다. 파일 끝에 추가하기 echo "ANYTHING" >> FILE_PATH 주의 점은 > 가 아닌 >>라는 점이다. > 쓰면 파일에 덮어쓰는 것이라서 원본이 날아간다. 꼭 >>로 써야 한다. 파일 처음에 추가하기 echo -e "ANYTHING\n$(cat ..

Knowhow/Linux 2023.03.23

Docker 컨테이너 내 opencv-python 설치 시 ImportError: libGL.so.1 문제

ImportError: libGL.so.1: cannot open shared object file: No such file or directoryPython opencv를 사용하고자 하면 단순하게 pip install opencv-python을 입력하면 끝이라 큰 이슈가 없지만 Docker 컨테이너 내에서 같은 명령어를 치면 위 오류가 날 수 있다. 딱 봐도 libGL이 없다는 오류라는 것을 알 수 있는데 libgl1-mesa-glx를 설치해주면 된다. 컨테이너에 직접 설치할 경우, 다음과 같이 하면 끝이고pip install libgl1-mesa-glx Docker 이미지에 선반영되게 만들고 싶다면, DockerFile 내에 다음을 추가해주면 된다. -y tag를 까먹지 말자.~~~~ 생략 RUN a..

Trouble/Docker 2023.03.21

Open3d manual registration (손으로 point cloud 정합하기)

Point cloud 여러개를 ICP를 이용해 registration(정합)하는 일은 생각보다 빈번하게 발생하는데, 이 때 초기 transformation을 제대로 정해주지 않으면 정합이 이상하게 된다. 특히 정합 대상인 두 point cloud가 noise point를 많이 갖고 있을수록 초기화가 어렵고 정합 성능도 떨어진다. 이럴 때 정합 성능을 높일 방법으로 RANSAC 같이 trial-and-error 접근을 할수도 있지만 경험적으로 보았을 때는 수가 많지 않다면 그냥 손으로 기준점을 잡아주는 것이 최고였다. 다른 말로, 사람이 직접 손으로 correspondence 몇 개를 잡아주고 이를 바탕으로 초기 transformation을 계산하여 사용하는 것이다. http://www.open3d.org..

Knowhow/Vision 2023.03.20