전체 글
-
Windows 10에서 Visual Studio Code와 CMake를 사용하여 C++용 OpenCV 사용하기 - [3] VS Code에서 작성한 코드를 컴파일컴퓨터 비전/OpenCV 2021. 10. 12. 11:33
Windows 10에서 Visual Studio Code와 CMake를 사용하여 C++용 OpenCV 사용하기 - [2] OpenCV 빌드하기 Windows 10에서 Visual Studio Code와 CMake를 사용하여 C++용 OpenCV 사용하기 - [1] 각 구성요소의 역할 파악 C++용 OpenCV를 사용하기 위해 검색을 하다 보면 느끼는 점이, 초보자에게는 헷갈리게도 필요한 튜. wjdghksdl26.tistory.com 지난 글에서는 CMake와 MinGW를 사용하여 OpenCV를 빌드하였습니다. 이번에는 VS Code로 작성한, OpenCV를 사용하는 C++ 코드를 컴파일하는 방법에 대해 알아보겠습니다. 일단 VS Code에서 프로젝트 폴더를 만들고 다음과 같은 예제 코드를 입력합니다. ..
-
Windows 10에서 Visual Studio Code와 CMake를 사용하여 C++용 OpenCV 사용하기 - [2] OpenCV 빌드하기컴퓨터 비전/OpenCV 2021. 10. 11. 22:44
Windows 10에서 Visual Studio Code와 CMake를 사용하여 C++용 OpenCV 사용하기 - [1] 각 구성요소의 역할 파악 C++용 OpenCV를 사용하기 위해 검색을 하다 보면 느끼는 점이, 초보자에게는 헷갈리게도 필요한 튜토리얼들이 여러 군데 나뉘어 있다는 것입니다. Windows 10용 C++ 컴파일러 설치 방법 그 컴파일러를 wjdghksdl26.tistory.com 지난 글에서는 Windows 10 환경에서 C++ 언어로 OpenCV를 사용하기 위한 도구들인 VS Code, MinGW, CMake의 역할에 대해 알아보았습니다. 이번 글에서는 MinGW와 CMake를 사용해 OpenCV를 빌드해 보겠습니다. 일단 VS Code는 설치되어 있다고 가정하고, MinGW와 CMa..
-
Windows 10에서 Visual Studio Code와 CMake를 사용하여 C++용 OpenCV 사용하기 - [1] 각 구성요소의 역할 파악하기컴퓨터 비전/OpenCV 2021. 10. 11. 16:53
C++용 OpenCV를 사용하기 위해 검색을 하다 보면 느끼는 점이, 초보자에게는 헷갈리게도 필요한 튜토리얼들이 여러 군데 나뉘어 있다는 것입니다. Windows 10용 C++ 컴파일러 설치 방법 그 컴파일러를 VSCode에서 사용하는 방법 CMake를 사용하는 방법 OpenCV를 컴파일하는 방법 등등, C++을 처음 접한다면 뭐가 뭐고 어떤 순서인지 헷갈릴 만한 일들이 참 많습니다. Python에서는 pip install opencv-python만 하면 그냥 바로 사용할 수 있는데 말이죠. 특히 C++ 자체까지 처음 접한다면 뭐 코드를 어떻게 실행시켜야 하는지, 컴파일은 뭐고 빌드는 뭔지, pip이 없는데 패키지들은 어디서 받아서 어떻게 쓰는 건지 등등 근본적인 고민들로도 은근 시간이 갑니다. 저는 파..
-
[논문 리뷰] Scan Context: Egocentric Spatial Descriptor for Place Recognition within 3D Point Cloud MapSLAM/SLAM 관련 논문 리뷰 2021. 9. 25. 16:13
KAIST 학생분들이 쓰신 논문이네요! Scan Context라는 Spatial Descriptor 개념을 제시한 논문인데, 간단히 요약하자면 어떤 위치에서 관측된 point cloud의 특징을 요약할 수 있는 descriptor를 제작해 LiDAR 기반 SLAM에서의 loop closure detection 또는 global localization등에 응용할 수 있도록 제안한 연구입니다. 비유를 해 보자면, 2D 이미지에서 특징점을 뽑은 다음에 각각의 특징점들을 ORB나 SURF등의 descriptor들을 사용해서 벡터로 encoding을 해 놓는 것처럼 어떤 특정한 위치에서의 point cloud data를 알아볼 수 있는, 말하자면 "요약본"을 제시한 것이라고 할 수 있겠습니다. 임의의 포인트 클라..
-
[논문 리뷰] Deep Virtual Stereo Odometry: Leveraging Deep Depth Prediction for Monocular Direct Sparse OdometrySLAM/SLAM 관련 논문 리뷰 2021. 9. 24. 12:41
이 논문은 다른 글에서 소개한 단안 깊이 추정 기법을 응용하여(참조한 논문은 다른 논문이지만 아이디어는 유사합니다) Monocular Visual Odometry에 적용한 시스템을 제안합니다. 링크를 걸어둔 두 논문은 한 장의 이미지를 입력으로 받아 단안 깊이 추정을 수행하는 시스템이지만, 이 논문은 거기에서 한 걸음 더 나아가 여러 프레임에서 생성된 depth information이 보다 일관되도록(정확히 어떤 의미인지 곧 설명하겠습니다) 제약 조건을 걸어서 최적화에 포함시킴을 통해 더욱더 정확한 3d reconstruction을 이루어 냈습니다. 그리고 논문 제목을 잘 보면 SLAM이 아니라 Visual Odometry입니다. 즉 현대적인 SLAM framework에 필수인 Loop Closure 과..
-
[논문 리뷰] Unsupervised Monocular Depth Estimation with Left-Right Consistency컴퓨터 비전/Monocular Depth Estimation 2021. 9. 23. 17:03
학부생 레벨의 컴퓨터 비전 기초 수업을 들어보신 분이라면 거의 반드시 stereo depth estimation에 대해 들어보셨을 것입니다. 사람의 눈처럼 렌즈가 두 개 달려 있는 카메라를 스테레오 카메라라고 부르는데, 왼쪽과 오른쪽 영상에서 공통적으로 보이는 물체들의 위치 차이(disparity)를 이용해서 물체까지의 3차원 거리를 계산할 수 있다~ 하는 부분이 바로 그것입니다. 보통은 이 개념을 제시한 이후 SIFT, SURF, ORB 등의 feature detector와 descriptor들을 사용해서 왼쪽과 오른쪽 이미지의 공통된 픽셀을 찾고, focal length와 baseline등의 수치를 사용해서 그 픽셀까지의 거리를 구하는 등의 연습을 합니다. 그런데 이 방법을 실제로 로봇 등에 사용하려..
-
[논문 리뷰] Monocular Camera Localization in 3D LiDAR MapsAutonomous Navigation/Perception 2021. 9. 20. 19:46
이 논문은 2016 IROS Conference에 투고된 논문으로, point cloud로 이루어진 HD Map을 가지고 있다는 가정 하에 monocular camera만으로 그 지도 공간 안에서 localization을 수행하는 방법을 다룬 연구입니다. 보통 HD Map이라고 하면 LiDAR 센서를 사용해서 작성 및 localization을 한다고 생각하시는 것이 보통일 텐데, 이 연구에서처럼 monocular camera로 localization이 가능하다면 비용 면에서 큰 장점이 있습니다. 본 논문에서는 구체적으로 ORB-SLAM을 통해 작성한 Map과 monocular camera를 가지고 localization을 수행하였으며, 이 외에 다른 정보는 사용하지 않았습니다. 계절 변화와 자동차들의 이..
-
Particle Filter를 이용한 Monte Carlo LocalizationAutonomous Navigation/Perception 2021. 9. 19. 20:16
로보틱스 분야에서 localization이란 말 그대로 로봇의 위치, 정확히 말하면 pose를 추정하는 작업입니다. Pose는 보통 3차원 위치 좌표와 3차원 orientation정보(roll, pitch, yaw)를 말하며, 자동차 등 평면상에서 움직이는 로봇의 경우에는 $ x, y $ 좌표와 heading에 해당하는 $ \theta $만을 추정하는 경우도 많습니다. 일반적으로 localization은 SLAM문제에 소속된 형태로 설명되는데, SLAM과정에서 생성한 지도(Point Cloud 등의 형태로 저장된) 내에서 현재 자신의 위치를 파악하는 과정이라는 식으로 묘사됩니다. 지도 작성과의 차이가 있는 부분은, localization은 당연하게도 지도 작성과는 다른 시점에 수행되기 때문에 주변 환경과..