#CV 환경 구축 2 - Ubuntu 20.0.4에 caffe 설치하기

HyojinKo·2023년 1월 29일
0

Environment
MacOS(M1)
CUDA == 11.5
*opencv == 4.4.0

1. download dependencies

$ sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler python-dev libgflags-dev libgoogle-glog-dev liblmdb-dev libboost-all-dev libatlas-base-dev libopenblas-dev libopencv-dev python-opencv python-pip python-dev python-protobuf build-essential

2. Download caffe

$ sudo git clone https://github.com/BVLC/caffe

3. Makefile.config

$ cd caffe // caffe를 git clone한 폴더로 이동하기
# Makeconfig.file 만들어주기
$ sudo vi Makefile.config

vim을 사용해서 아래 내용을 복붙해서 넣어준다(환경별 버전은 맞춰줘야함)

CPU_ONLY := 1
OPENCV_VERSION := 3
CUSTOM_CXX := g++
CUDA_DIR := /usr/local/cuda
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61

BLAS := atlas
# 아래 부분 자기의 파이썬 버전과 numpy 위치에 맞게 수정해줘야함
PYTHON_INCLUDE := /usr/include/python3.8 \
/usr/lib/python3/dist-packages/numpy/core/include

PYTHON_LIB := /usr/lib
# 마찬가지로 여기도 각자 환경에 맞게 수정! 
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
BUILD_DIR := build
DISTRIBUTE_DIR := distribute
TEST_GPUID := 0
Q ?= @

4. Run Make

나는 이 과정에서 caffe의 cpp, hpp 파일에 있는 Opencv 버전에 문제가 있어서 파일들 내의 opencv2/~를 모두 opencv4/opencv2/~로 변경해주었다. . . . .

$ sudo make all
$ sudo make test
$ sudo make run test

5. pycaffe

마찬가지로 이 과정에서도
library not found for -lboost_python 라는 에러가 떠서 우선 이걸 해결해주었다.

5-1.library not found for -lboost_python ERROR solving

python3의 경우 lboost가 아니라 libboost라는 이름이기 때문에 일단 libboost의 위치를 찾아주었다.

$ sudo find /usr -iname libboost*

libboost가 /usr/lib/x86_64-linux-gnu에 있어 해당 경로로 이동 후 작업을 진행하였다.

$ cd  /usr/lib/x86_64-linux-gnu
# libboost_python버전 찾기
$ ls -l | grep libboost_python


그럼 이런 결과가 뜨는데, 맨 마지막 파일의 이름을 복사하고

$ sudo ln -s libboost_python38.so.1.71.0 libboost_python3.so

을 해준다.
다시 caffe를 설치 했던 경로로 이동해서 Makefile (Makefile.config 아님)파일 수정

$ cd ~/.../caffe  # 각자 환경에 맞는 경로로~!
$ sudo vi Makefile

Makefile 을 열고 vim 명령어인 :?boost_python을 쓰면
PYTHON_LIBRARIES ?= boost_python python2.7 을 찾을 수 있는데, 여길
PYTHON_LIBRARIES ?= boost_python3 python3.8
로 바꿔주면 끝!

5-2. pycaffe 실행

$ sudo make pycaffe

$ echo $? 

를 실행했을때 0이 나오면 성공!

6. 경로 설정

지금 실행 중인 위치(caffe 설치 위치)를 사용해서 경로를 설정해준다!
만약 내가 caffe를 /usr/local/CV/caffe라는 경로에 설치했다고 가정하면,

$ export PYTHONPATH=/usr/local/CV/caffe/python:$PYTHONPATH

이렇게 경로를 설정해준다.

7. 실행

$ python 
Python 3.8.10 (default, Nov 14 2022, 12:59:47) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe

이렇게 import caffe를 입력했을때 아무런 메세지도 뜨지 않는다면 성공!

profile
재밌나?

0개의 댓글