본문 바로가기

3D 스캔

kinfu with azure kinect

https://github.com/microsoft/Azure-Kinect-Samples/tree/master/opencv-kinfu-samples

 

GitHub - microsoft/Azure-Kinect-Samples: Samples for Azure Kinect

Samples for Azure Kinect. Contribute to microsoft/Azure-Kinect-Samples development by creating an account on GitHub.

github.com

 

이걸 해보려고 한다.

 

순서대로 따라해보자.

 

1. azure kinect sample를 받아서 압축을 풀어준다.

 

2. opencv-4.1.0 을 contrib와 함께 설치해준다. 이 과정은 아래 링크를 보고 하자. 

 

WITH_VTK, VTK_DIR and OPENCV_ENABLE_NONFREE 

위 옵션들은  반드시 체크해줘야 한다. 

 

https://talesoff.tistory.com/43

 

OpenCV contrib와 함께 빌드하기

OpenCV는 기본적인 기능만을 보유하고 있고, 추가적인 기능은 OpenCV contrib라는 형태로 배포가 되는 것으로 보인다. 결국 OpenCV에 rgbd 입력 등의 추가 기능을 사용하기 위해서는 contrib를 포함하는 형

talesoff.tistory.com

3.  opencv의 opencv\build\include* 폴더를 opencv-kinfu-samples\extern\opencv-4.1.0\include 에 복사해준다. 폴더는 아래 사진처럼 만들어줘야 한다. 

5. opencv_contrib\modules\rgbd\include 를 extern\opencv_contrib-4.1.0\modules\rgbd\include에 복사해준다.

 

6. opencv_contrib\modules\viz\include를 extern\opencv_contrib-4.1\modules\viz\include에 복사해준다. 

 

7. VTK 8.2.0 을 받아서 빌드해준다.

https://luckygg.tistory.com/125

 

 

[VTK] VTK 8.2 및 Visual Studio 2015 환경 구성

VTK를 사용하기 위해서는 준비 과정이 다소 길고 복잡합니다. 본 글에서는 차례차례 쉽게 따라 할 수 있도록 정리해 보았습니다. ※ 2019년 7월 3일 추가 혹시 아래 빌드 과정이 안 되는 분들을 위

luckygg.tistory.com

 

위 링크를 보고 따라해주자. VS2017, x64로 세팅해서 cmake를 진행해주었다. 무지 오래 걸렸다..

 

9. kinfu를 빌드하려면 k4a 라이브러리도 빌드를 해둬야 한다. git을 이용해서 빌드해주자

 

 경고를 오류로 처리하는 문제가 있는데, 이건 그냥 옵션에서 꺼주면 된다. 

 

추가로 sound io 에서 문제가 생기는데, 어차피 이거 안쓸거니까 스킵한다. 

 

10. kinfu는 이미 빌드가 되어있으니, 바로 솔루션을 연다. 

 

추가포함디렉토리를 변경해준다. 

 

그리고 라이브러리 세팅을 해준다. 

 

요런식이면 완료

 

일련의 과정을 다 하고 나면..

 

tsdf 쪽에서 이슈가 하나 생긴다. 사실 이것 때문에 다시 작업할 때는 opencv를 4.3으로 빌드하긴 했었는데..

 

tsdf 파일에 최신업데이트본을 적용하면 잘 넘어간다.

 

그 다음으로 아마 nvidia 20x0 시리즈를 쓰고 있으면 

 

이런 에러가 생길거다. 이건 OpenCL에서 gpu 사용시에 필요한 dimension을 잘못 넣어줘서 발생하는 이슈이다.

 

https://github.com/opencv/opencv_contrib/issues/2422

 

Kinect Fusion and OpenCL fails on NVIDIA RTX 2060- clEnqueueNDRangeKernel (-5) · Issue #2422 · opencv/opencv_contrib

Hi, This is a follow-up of issue: #2029 I just wondering if this has been solved for NVIDIA cards. I am still having the same error mentioned before: OpenCL error CL_OUT_OF_RESOURCES (-5) during ca...

github.com

이 이슈를 해결하는 방법은 위 링크에 나와있다.

 

정답은 바로 이 것.

 

이렇게 원문은 주석을 치고, 새로운 코드를 반영한 후 빌드해서 라이브러리와 dll을 적용하자. 참고로 ocl.cpp는 E:\ExternalTools\opencv\modules\core\src에 있었다. 

 

그리고 빌드한 경과물은 opencv_core 쪽에 반영되니 그 라이브러리만 처리해주면 된다. include 폴더도 복사하는 것 잊지 말고!!

 

kinfu를 실행해봤다. 나름 잘 나오는걸 알 수 있다.

 

w를 눌러서 파일로 익스포트 해보면, 

 

 

ply 파일이 생성되는데, meshlab으로 보면 이게 포인트 클라우드 파일임을 알 수 있다.

 

이상 kinfu 돌려보기 끝!!

 

 

 

 

'3D 스캔' 카테고리의 다른 글

texrecon 돌려보기  (0) 2022.06.22
MVE API 분석 1편. MakeScene  (0) 2022.06.17
OpenCV contrib와 함께 빌드하기  (0) 2022.06.10