Done/Environment_Install

[3D_Vision_Tutorial/PCL_Tutorial] Ubuntu 20.04 + OpenCV + Ceres Solver install + PCL

weasel7 2023. 12. 3. 16:28
728x90

https://github.com/mint-lab/3dv_tutorial : 3dvision tutorial code

- https://github.com/CYLoung/pcl_tutorial : pcl tutorial code 

- Dependency : OpenCV / Ceres Solver / PCL 

 

๐Ÿฑ OpenCV Install

$ pkg-config --modversion opencv # OpenCV ๊ฐ€ ์ด๋ฏธ ๊น”๋ ค์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ
$ pkg-config --modversion opencv4 # version 4 ๋ถ€ํ„ฐ๋Š” ์ด๋ ‡๊ฒŒ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.

- Install ์ฐธ๊ณ  https://webnautes.tistory.com/1186

 

๐Ÿฑ OpenCV ์›ํ•˜๋Š” ํด๋”์— build & install

$ pkg-config --modversion opencv # local์— ์„ค์น˜ ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธ

# ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ์œผ๋ฉด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์…”๋„ ๋˜์ง€๋งŒ ์—ฌ๋Ÿฌ๋ฒ„์ „์˜ OpenCV๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ์ง€์šฐ๊ธฐ

$ sudo apt-get install -y cmake # install cmake


# folder๋Š” ์›ํ•˜๋Š” ๊ฒฝ๋กœ์— 
$ git clone https://github.com/opencv/opencv.git # clone opencv

 

ํด๋” ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑํ–ˆ๋‹ค. ๋‚˜๋Š” ๋กœ์ปฌ์—์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ version์„ ํ–ฅํ›„์— ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ด์„œ ๋”ฐ๋กœ ์„ค์น˜ ์˜์—ญ์„ ๋นผ๋‘์—ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ทธ๋ƒฅ /usr/local ~ ์–ด๋”˜๊ฐ€ ์„ค์น˜๋จ

 

# ๋‚˜์˜ ํด๋” ๊ตฌ์กฐ
install_thirdparty
 ใ„ด-- OpenCV
        |--- install # make install ๋‚˜์ค‘์— CMAKELIST ์—์„œ ๊ฒฝ๋กœ ์—ฐ๊ฒฐ์‹œํ‚ฌ ๊ณณ (์‹ค์ œ๋กœ ๋นŒ๋“œ๊ฐ€ ๋˜๋Š” ์žฅ์†Œ๋Š” ์•„๋‹ˆ์ง€๋งŒ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ์Œ)
        |--- build # build
        ใ„ด-- opencv

 

 

-DCMAKE_BUILD_TYPE์€ build type : Debug mode ,  Release mode๋ฅผ ๋ช…์‹œ

INSTALL_PREFIX๊ฐ€ ๋‚˜์ค‘์— ์–ด๋–ค ๊ฒฝ๋กœ์— install ํŒŒ์ผ์„ ๋“ฑ๋กํ•˜๊ฒ ๋‹ค!๋ผ๊ณ  ๋ช…์‹œํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ../opencv -> CMakeLists.txt ๊ฐ€ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 

$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release	-DCMAKE_INSTALL_PREFIX=../install 	../opencv

์ด๋ ‡๊ฒŒ CMake ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋ฉด 

$ make -j4
$ make install  
# system์— ์„ค์น˜ํ•˜๊ณ  ์‹ถ์œผ๋ฉด PREFIX_INSTALL ๊ฒฝ๋กœ๋ฅผ ์ œ์™ธํ•˜๊ณ  sudo make install

๋‚˜์ค‘์— CMakelist์—์„œ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋จ

 

 

๐Ÿ’ซ Ceres-Solver install

# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev


wget http://ceres-solver.org/ceres-solver-2.1.0.tar.gz
tar zxf ceres-solver-2.1.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.1.0
make -j4
make test
# Optionally install Ceres, it can also be exported using CMake which
# allows Ceres to be used without requiring installation, see the documentation
# for the EXPORT_BUILD_DIR option for more information.
sudo make install

install_ceres.sh
0.00MB

 

 

๐Ÿช„ Ceres-solver test

- ํ•œ ํด๋”์— ์•„๋ž˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  

- CMake ์ž‘์„ฑ๋ฒ• ์‚ฌ์šฉ๋ฒ• ์ฐธ๊ณ  (https://edward0im.github.io/technology/2020/09/16/cmake/)

https://ceres-solver.googlesource.com/ceres-solver/+/master/examples/helloworld.cc 

 

CMakeLists.txt
0.00MB
helloworld.cc
0.00MB

mkdir build
cd build
cmake ..
make

 

โš  Ceres-solver install error 1

Total Test time (real) =  78.95 sec

The following tests FAILED:
	  2 - cuda_memcheck_dense_cholesky_test (Failed)
	 25 - cuda_dense_cholesky_test (SEGFAULT)
	 27 - cuda_kernels_test (Child aborted)
	 28 - cuda_sparse_matrix_test (Child aborted)
	 29 - cuda_vector_test (Child aborted)
	 31 - dense_cholesky_test (Child aborted)
	104 - ba_denseschur_cuda_auto_test (Child aborted)
	121 - ba_denseschur_cuda_auto_threads_test (Child aborted)
	138 - ba_denseschur_cuda_user_test (Child aborted)
	155 - ba_denseschur_cuda_user_threads_test (Child aborted)
Errors while running CTest
make: *** [Makefile:130: test] Error 8

์ ‘๊ทผ 1 ) USE_CUDA ํ™œ์„ฑ

https://github.com/ceres-solver/ceres-solver/blob/master/CMakeLists.txt -> USE_CUDA ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค

https://www.cv-learn.com/20230321-ccmake/#more

์ ‘๊ทผ 2 ) wget์œผ๋กœ ๋‹ค์šด๋ฐ›์•„์„œ ์„ค์น˜ (clone์œผ๋กœ ํ•œ ํŒŒ์ผ ๋ง๊ณ  wget์œผ๋กœ ๋‹ค์šด๋ฐ›์•„์„œ ์„ค์น˜ํ•˜๋‹ˆ ๋œ๋‹ค,,ใ…Ž,,)

โš  Ceres-solver install error 2

-- Install configuration: "Release"
CMake Error at cmake_install.cmake:41 (file):
  file cannot create directory: /usr/local/lib/cmake/Ceres.  Maybe need
  administrative privileges.

-> make install ์€ sudo๋ฅผ ๋ถ™์ด์ž ๋”ฐ๋กœ cmake ๋•Œ INSTALL_PREFIX ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉด

 

๐Ÿ’ซ PCL & Boost install

# Method 1 ) pkg install
sudo apt-get update && sudo apt-get install -y software-properties-common git
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl -y && sudo apt-get update

sudo apt-get install -y libpcl-all #ubnutu 14
sudo apt-get install -y libpcl-dev #ubuntu 16 (libpcl-dev 1.7.2)
sudo apt-get install -y libpcl-dev #ubuntu 18 (PCL 1.8)

# Method 2 ) Source install

# ํ•„์ˆ˜ ์„ค์น˜ 
$ sudo apt-get update -qq
$ sudo apt-get install -y --no-install-recommends make cmake cmake-gui build-essential git libeigen3-dev libflann-dev libusb-1.0-0-dev libboost-all-dev && 
# ์ถ”๊ฐ€ ์„ค์น˜ 
sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends libflann1.8 libusb-dev libvtk6-qt-dev libpcap-dev libproj-dev linux-libc-dev libudev-dev mpi-default-dev openmpi-bin openmpi-common libvtk5.10-qt4 libvtk5.10 libvtk5-dev libqhull* libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete qt-sdk openjdk-8-jdk openjdk-8-jre

# git build-essential linux-libc-dev cmake cmake-gui libusb-1.0-0-dev libusb-dev libudev-dev mpi-default-dev openmpi-bin openmpi-common libflann1.8 libflann-dev libeigen3-dev libboost-all-dev libvtk5.10-qt4 libvtk5.10 libvtk5-dev libqhull* libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete qt-sdk openjdk-8-jdk openjdk-8-jre
$ sudo rm -rf /var/lib/apt/lists/*

cd install_thirdparty
wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.13.1.tar.gz
tar zvfx pcl-1.13.1.tar.gz
cd pcl-pcl-1.13.1
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install 	../
# with enhanced compiler optimizations `cmake -DCMAKE_BUILD_TYPE=Release ..`
make -j4 # it depend on your cpu core
make -j4 install # PREFIX ์œ„์น˜๋ฅผ ์ œ์™ธํ•˜๊ณ  ์‹œ์Šคํ…œ์— ์„ค์น˜ํ•˜๋ฉด sudo๋ฅผ ์•ž์— ์ถ”๊ฐ€ํ•ด์•ผํ•จ

PCL์„ ์ž˜ ์„ค์น˜ ํ›„ visualization ์˜ˆ์ œ๋ฅผ ๋Œ๋ ค๋ณธ ๊ฒฐ๊ณผ์ด๋‹ค

 

๐Ÿ’ซ Clion setting

- ํ•™์ƒ ๊ณ„์ •์„ค์ • : https://www.jetbrains.com/community/education/#students

 

Free Educational Licenses - Community Support

Learn or teach how to code with best-of-industry tools from JetBrains. Free Educational Licenses for JetBrains' tools.

www.jetbrains.com

ํ•™์ƒ ๊ณ„์ •์„ค์ • ๊ด€๋ จ ์ฐธ๊ณ  ๊ธ€

Clion ๊ด€๋ จ ์ฐธ๊ณ  ๊ธ€

 

 

 

 

 

๐Ÿ“Œ Reference

[1] OpenCV install

https://docs.opencv.org/4.x/df/d65/tutorial_table_of_content_introduction.html

- ์œ„ ํŽ˜์ด์ง€ ์ค‘

[2] with Ubuntu https://docs.opencv.org/4.x/d7/d9f/tutorial_linux_install.html

[3] Ceres Solver install http://ceres-solver.org/installation.html#linux

[4] Ceres Solver helloceres :https://github.com/LimHyungTae/helloceres

728x90