카테고리

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

우분투 18.04 openCV Version 3.4.4

openCV Version 3.4.4 opencv(extra modules) 컴파일 후 우분투 18.04 설치 방법.

Ubuntu 18.04

python 버전 확인
python3 --version

python3 간단한 동작 확인
python3
>> print("오픈CV + 우분투 18.04!")
오픈CV + 우분투 18.04!
>> quit()

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

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

OpenCV는 JPEG, PNG, TIFF등 디스크에 있는 이미지 파일을 로드 할 수 있다.
디스크에 있는 이미지 파일을 로드 하려면 이미지 I/O 패키지가 필요함.
sudo apt-get install libjpeg-dev libpng-dev libtiff-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 python3-dev

2 단계: OpenCV 소스코드 다운로드
cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.4.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.4.zip

압축해제
unzip opencv.zip
unzip opencv_contrib.zip

opencv_contrib repo 설치, 설치 안 할 경우 표준 키보드의 키 위치를 감지 및 OpenCV 2.4.x 버전에서 사용한 SIFT, SURF 접근 할 수 없다.
적극적으로 개발중인 모듈 및 또는 특허가있는 모듈이다.(상업적/산업적 용도로는 사용 가능하지 않음)
즉, contrib 모듈에 있는 건 비 상업적으로만 사용해야 한다.

또한 자연 스러운 이미지 텍스트 감지와 같은 OpenCV 3.0 새로운 기능을 사용하지 못함.
동일한 버전 다운로드

mv opencv-3.4.4 opencv
mv opencv_contrib-3.4.4 opencv_contrib

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
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
:wq
로그아웃 또는 재부팅, 아니면 source /home/username/.bashrc

가상 cv 환경 구축
mkvirtualenv cv -p python3

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

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

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

컴파일
cd ~/opencv/
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_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D BUILD_EXAMPLES=ON ..

OPENCV_ENABLE_NONFREE=ON 설정해 특허 알고리즘 사용 할 수 있도록 한다.

CMAKE 출력 파일 확인
Cmake 파일이 파이썬 인터프리터 등록 확인.
"Non-free algorithms" 이 "YES"로 설정되어 있는지 확인

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

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

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

설치
sudo make install
sudo ldconfig

설치 확인
pkg-config --modversion opencv
3.4.4

5 단계: 설치 확인.
폴더 확인
ls /usr/local/python/cv2/python-3.6
cv2.cpython-36m-x86_64-linux-gnu.so

이름 변경.
cd /usr/local/python/cv2/python-3.6
sudo mv cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

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

6 단계 : OpenCV 테스트
cd /home/username/
workon cv
python
Python 3.4.4
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.4'
>>>
--------------
파이썬 2.7를 설치 하려면,
1 단계가 끝나고 아래 명령어 실행.
sudo apt-get install python2.7 python2.7-dev
sudo python2.7 get-pip.py
mkvirtualenv cv -p python2.7

댓글 없음:

댓글 쓰기