OpenCV

0617044顧啟耀

全名為Open Source Computer Vision Library,其於1999年由intel建立,今由Willow Garage提供支援,是一個基於開放原始碼發行的跨平台電腦視覺庫,可執行於Linux、Windows、MacOS、Android、iOS等作業系統上。

OpenCV由c與c++所構成,還支援C#、Ch、Ruby等程式語言,同時提供對Python、Ruby、MATLAB等語言介面,實現影像處理和電腦視覺的演算法。

OpenCV可用於解決下列問題:
人機互動、物體識別、影像分區、人臉識別、動作識別、運動跟蹤、機器人

Install OpenCV on linux system

1.更新ubuntu到最新狀態

sudo apt-get update

sudo apt-get upgrade

2.安裝gcc、cmake等c++基礎編譯環境

sudo apt-get install build-essential cmake

3.安裝OpenCV週邊環境

sudo apt-get install libjpeg-dev libpng-dev libtiff-dev

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

sudo apt-get install libxvidcore-dev libx264-dev

sudo apt-get install libgtk-3-dev

sudo apt-get install libatlas-base-dev gfortran

4.安裝Python

sudo apt-get install python3-dev

5.下載OpenCV

這裡需要先裝git(如果電腦裡沒有的話)

sudo apt-get install git

接下來用git clone下來最新版本的OpenCV

git clone https://github.com/opencv/opencv.git

git clone https://github.com/opencv/opencv_contrib.git

6.設定Python(為避免相容性bug這裡依照參考教程安裝)

a.安裝pip

wget https://bootstrap.pypa.io/get-pip.py

sudo python3 get-pip.py

b.安裝虛擬環境virtualenv

sudo pip install virtualenv virtualenvwrapper

sudo rm -rf ~/get-pip.py ~/.cache/pip

c.設定virtualenv到.bashrc

echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc

echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc

echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc

echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

d.更新.bashrc

source ~/.bashrc

e.建立虛擬環境

mkvirtualenv cv -p python3

f.以剛剛建立的虛擬環境繼續設定<(此時prompt開頭應該會有一個(cv))

workon cv

g.安裝numpy

pip install numpy

7.設定編譯參數

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 \
-D OPENCV_ENABLE_NONFREE=ON \
-D ENABLE_PRECOMPILED_HEADERS=OFF ..

8.編譯

make -j4

9.安裝

sudo make install

sudo ldconfig

10.善後

cd /usr/local/lib/python3.6/site-packages

sudo mv cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

cd ~/.virtualenvs/cv/lib/python3.6/site-packages/

ln -s /usr/local/lib/python3.6/site-packages/cv2.so cv2.so

11.結束

deactivate

12.使用測試

workon cv

python

Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.4'
>>> quit()

Visual Studio Code

一種強大的程式碼編輯器,不僅可在Linux、Windows、MacOS上執行,還支援數百種程式語言,且其含有強大的編輯與偵錯能力。

Visual Studio Code installation

在Visual Studio Code中修改python位址

測試

結果

Library installation

dlib

dlib是一套使用c++語言所編寫的函式庫,主要可應用在機器學習、影像處理、影像辨識等等,它是基於BSD授權條款,是免費的。

1.安裝週邊環境

sudo apt-get install libopenblas-dev liblapack-dev

sudo apt-get install libx11-dev libgtk-3-dev

sudo apt-get install python python-dev python-pip

sudo apt-get install python3 python3-dev python3-pip

2.安裝在虛擬環境上

workon cv

pip install dlib

3.測試

python

Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
>>> dlib.__version__
'19.8.2'
>>> quit()

imutils

imutils是Adrian Rosebrock開發的python library,整合了numpy、opencv相關操作,進行一些圖像處理,包括平移、縮放、旋轉、骨架提取等等

1.安裝

workon cv

pip install imutils

Face detection

picture

code

結果

webcam

code

結果

Homework

code

結果

Reference

https://www.pyimagesearch.com/2018/05/28/ubuntu-18-04-how-to-install-opencv/

https://blog.gtwang.org/programming/opencv-basic-image-read-and-write-tutorial/

https://www.pyimagesearch.com/2018/01/22/install-dlib-easy-complete-guide/?fbclid=IwAR1W-lafyKAAcZNeVOSMfAELCJMcRph8ESMV0ZBsP6pJJSZhGBxZWL1Q0wo

https://blog.gtwang.org/programming/python-opencv-dlib-face-detection-implementation-tutorial/

http://cyh-etlab.blogspot.com/2018/06/webcam-python-opencv.html