https://github.com/microsoft/Azure-Kinect-Samples/tree/master/opencv-kinfu-samples
이걸 해보려고 한다.
순서대로 따라해보자.
1. azure kinect sample를 받아서 압축을 풀어준다.
2. opencv-4.1.0 을 contrib와 함께 설치해준다. 이 과정은 아래 링크를 보고 하자.
WITH_VTK, VTK_DIR and OPENCV_ENABLE_NONFREE
위 옵션들은 반드시 체크해줘야 한다.
https://talesoff.tistory.com/43
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
위 링크를 보고 따라해주자. 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
이 이슈를 해결하는 방법은 위 링크에 나와있다.
정답은 바로 이 것.
이렇게 원문은 주석을 치고, 새로운 코드를 반영한 후 빌드해서 라이브러리와 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 |