카테고리

asm (27) bootloader_x86_grub (1) C (92) compile (11) config (76) CPP (13) CSS (1) debugging (7) gimp (1) Go (1) html (1) Java (1) JavaScript (1) kernel (19) LibreOffice (3) Linux system progamming (21) MFC (1) opencv (4) OpenGL (1) PHP (1) Python (4) qemu (29) shell (3) socket (7) troubleshooting (2) ubuntu18.04 (2) windows (1)

2018/12/23

Ubuntu 16.04 OpenCV 3.1.0 및 Python 3.5 설치

우분투 OpenCV 3.1.0 및 Python 3.5 설치

Ubuntu 16.04

OpenCV 3.1.0 버전 Python 3 이상과 호환.
Python2.7.12 버전: 터미널 파이썬 실행 버전(우분투 기본 설치 버전)
Python3.5.2 버전: python3 명령을 통해 접근 할 수 있음.

두개를 동시에 사용해야 하므로, 동작 안하는 프로그램이 있을 수 있다.
이 문제는 env 환경 구성에서 python 정보를 직접 입력해 해결 하면된다.


1 단계 : opencv 의존성 패키지 설치
터미널 열기 ctrl + art + t
sudo apt-get update
sudo apt-get upgrade

개발 도구 설치
sudo apt-get install build-essential cmake git pkg-config

pkg-config: 패키지 설정 파일.
git : GitHub OpenCV 프로젝트 사이트 소스 코드 다운로드
cmake: 빌드 구성

OpenCV는 JPEG, PNG, TIFF등 디스크에 있는 이미지 파일을 로드 할 수 있다.
디스크에 있는 이미지 파일을 로드 하려면 이미지 I/O 패키지가 필요함.
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev

로드 된 후 모니터 화면에 보여주기 위해서는 highgui 모듈, GUI에 의존하는 GTK 개발 라이브러리 필요.
sudo apt-get install libgtk-3-dev

OpenCV 비디오 스트림 처리, 개별 프레임 접근 하기 위해 다음 라이브러리 설치
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev

OpenCV 내부의 메트릭스 기능과 같은 다양한 기능을 최적화하는 라이브러리 설치
sudo apt-get install libatlas-base-dev gfortran

파이썬 버전 설치
sudo apt-get install python2.7-dev python3.5-dev

2 단계: OpenCV 소스코드 다운로드
https://github.com/Itseez/opencv/archive/3.1.0.zip
https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip

cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
unzip opencv.zip

opencv_contrib repo 설치, 설치 안 할 경우 표준 키보드의 키 위치를 감지 및 OpenCV 2.4.x 버전에서 사용한 SIFT, SURF 접근 할 수 없다.
또한 자연 스러운 이미지 텍스트 감지와 같은 OpenCV 3.0 새로운 기능을 사용하지 못함.
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
unzip opencv_contrib.zip

동일한 버전 다운로드

3 단계: Python 환결 설정.
파이썬 패키기 관린 pip 설치
cd ~
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

https://virtualenv.pypa.io/en/latest/ 및 https://virtualenvwrapper.readthedocs.io/en/latest/ 를 설치한다.
이 두개의 패키지는 별도의 파이썬 버전과 개발 환경을 생성할 수 있게 한다.
sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip

사용자 환경 설정.
vi /home/username/.bashrc
# virtualenv 및 virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
:wq

cat 명령으로 환경 설정
echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

둘 중 편한 방법을 선택해 적용한다.
로그아웃 또는 재부팅, 아니면 source /home/username/.bashrc

OpenCv 3.1 + Python 2.7 버전 개발을 위해, 가상 cv 환경 구축
mkvirtualenv cv -p python2

3.x 버전으로 만들 경우
mkvirtualenv cv -p python3

어떤 버전을 사용해도 상관은 없다.
최졍 cv python 가상 환경을 만드는게 목적이다.

cv 가상 환경 확인
workon cv
(cv) username:~$

OpenCV 이미지 다차원 처리 NumPy 배열로 표현하며 최종 단계 숫자로 처리함.
pip install numpy

4 단계: python 3.5 + OpenCV 컴파일.
가상 환경 접근
workon cv

컴파일
cd ~/opencv-3.1.0/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
    -D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
    -D BUILD_EXAMPLES=ON ..

stdlib 관련된 오류 발생시 stdlib.h: No such file or
CMake : -D ENABLE_PRECOMPILED_HEADERS=OFF
이 경우에는 빌드 디렉토리를 삭제하고, 다시 빌드, 위의 옵션이 포함 된 CMake를 다시 실행하는 것이 좋다.
이렇게하면 stdlib.h 오류가 해결.

CMAKE 출력 파일 확인
Cmake 파일이 파이썬3 버전 인터프리터 등록 확인.
Python 2:
Interpreter : /home/username/.virtualevns/cv/bin/python (ver 2.7.12)
Libraries : /usr/lib/x86_64-linux-gnu/libpython2.7.12~~~
numpy: /home/username/.virualenvs/cv/lib/python2.7.12/site.packages/numpy/core~~~~
packages path: lib/python2.7.12/site-packages

1. 컴파일 2.7 버전으로 가상환경 구축
2. 라이브러는 2.7 사용
3. NumPy 2.7 가상환경
4. 패키지 경로 cv2.so lib/python2.7/site-packages /usr/local/lib/python2.7/site-packages/

3.5 버전으로 컴파일 했을 경우
CMAKE 의 출력 내용은 3.5로 나타난다.

컴파일
make -j4
컴파일 속도를 높이려면 현재 사용되는 컴퓨터의 프로세서 코어수를 넣어준다.

실패시 기본 프로세서 정보로 컴파일
make clean
make

설치
sudo make install
sudo ldconfig

5 단계: 설치 확인.
Python2.7: 컴파일시.
ls -l /usr/local/lib/python2.7/site-packages/

심볼 링크
cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

Python3.5: 컴파일시.
ls -l /usr/local/lib/python3.5/site-packages/

동적 라이브러리가 이름이 변경되 고생 함.
cd /usr/local/lib/python3.5/site-packages/
sudo mv cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

심볼 링크
cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so

6 단계 : OpenCV 테스트
python 3.5 구성시
cd /home/username/
workon cv
python
Python 3.5.2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>

python 2.7 구성시
cd /home/username/
python
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>
어떤한 파있너 버전을 사용해도 상관이 없다 cs2를 파이썬이 호출 하면된다.

댓글 없음:

댓글 쓰기