Belajar Image Processing di Linux (OpenCV)

Pada turorial ini kita belajar bagaimana cara install OpenCV 4 pada Operating System Ubuntu, ini merupakan langkah pertama yang harus kita lewati untuk dapat mempelajari Computer Vision, Deep Learning, dan OpenCV.

Sebelum masuk ke langkah-langkah instalasi, temen-teman harus memperhatikan poin berikut ini:

  1. Pada saat artikel ini dibuat saya menggunakan OS Ubuntu 20.04.
  2. dan versi Python yang saya gunakan yaitu versi Python 3.8.10.
  3. Oke tanpa panjang lebar yok kita mulai langkah-langkahnya.

Langkah 1: Install Dependencies OpenCV 4 pada Ubuntu

Pertama update sistem terlebih dahulu:

sudo apt-get update
sudo apt-get upgrade

Kemudian install developer tools:

sudo apt-get install build-essential cmake unzip pkg-config

Selanjutnya install beberapa libraries I/O image dan video.

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

Libraries ini memungkinkan kita untuk menampilkan image dan video dari storage komputer atau laptop, lalu install GTK untuk backend GUI:

sudo apt-get install libgtk-3-dev

lalu diikuti dengan menginstall 2 packages yang berisi optimasi matematika untuk OpenCV yang akan kita install:

sudo apt-get install libatlas-base-dev gfortran

dan yang terakhir mari kita install header development Python 3:

sudo apt-get install python3-dev

Setelah menginstal semua persyaratan di atas, maka kita dapat melanjutkan ke langkah berikutnya.

Langkah 2: Download OpenCV 4

Langkah berikutnya kita akan menginstal OpenCV dengan menavigasikan terminal kita ke folder home dan download opencv dan opencv_contrib. Repository dari contrib di dalamnya memiliki extra module dan functions yang akan sering kita gunakan selama mempelajari Computer Vision, Deep Learning, and OpenCV. Jadi… jangan sampai ada langka-langkah yang terlewat ya guys!

Oke langsung saja, download opencv dan opencv_contribut:

cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.4.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.4.zip

dan kita unzip dengan command berikut:

unzip opencv.zip
unzip opencv_contrib.zip

kemudian rename direktorinya:

mv opencv-4.5.4 opencv
mv opencv_contrib-4.5.4 opencv_contrib

namun jika temen-temen tidak melakukan rename, jangan lupa update path dari CMake (akan dijelaskan pada langkah selanjutnya).

Sekarang opencv dan opencv_contrib sudah ter-download dan siap digunakan, selanjutnya kita akan set up environtment yang dibutuhkan.

Langkah 3: Konfigurasi Virtual Environment untuk Python 3 dan OpenCV 4

Selanjutnya kita install pip (Python Package Manager) dengan command berikut:

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

Memanfaatkan Virtual Environtments untuk Python Development

Virtual Environmens untuk Python memungkinkan kita melakukan isolasi pada saat mengerjakan project Python dan merupakan cara yang terbaik untuk Python Development. 

Sebagai contohnya ketika kita memiliki sebuah project Python + OpenCV yang membutuhkan scikit-learn (v0.14) versi lama, namun kita ingin tetap menggunakan scikit-learn versi terbaru untuk project kita yang lain. Maka dengan menggunakan Virtual Environment kita dapat menangani kedua dependencies yang berbeda versi tersebut secara terpisah.

Informasi lebih lanjut mengenai Virtual Environment dapat temen-temen lihat pada artikel ini Real Python atau di sini PyImageSearch.

Catatan: Untuk menjalankan project Python dengan Virtual Environment saya menggunakan package virtualenv dan virtualenvwrapper, namun teman-temen dapat melewati bagian ini jika lebih femiliar dengan conda atau PyEnv.

Oke selanjutnya kita create dan manage Python Virtual Environment dengan menginstal virtualenv dan virtualenvwrapper:

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip

untuk menyelesaikan instalasi ini, kita perlu melakukan update pada file ~/.bashrc menggunakan terminal seperti vi vim atau nano:

sudo nano ~/.bashrc

dan tambahkan code berikut pada baris paling akhir:

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

kemudian kita baca dan eksekusi perintah dari file ~/.bashrc dengan menggunakan command:

source ~/.bashrc

Membuat Virtual Environment untuk menampung OpenCV 4 dan paket tambahan pendukungnya

Langkah pertama yang harus dilakukan pada bagian ini yaitu:

mkvirtualenv cv -p python3

command ini berfungsi untuk membuat Virtual Environment Python 3 yang bernama cv (pemberian nama disini sebenarnya tergantung keinginan teman-teman, yang penting singkat dan cukup memberikan informasi tentang fungsi penamaan tersebut). Contoh penamaan lain seperti:

  • py3cv4 (Penjelasan: Python 3 + OpenCV 4)
  • py3cv3 (Python 3 + OpenCV 3)
  • py2cv2 (Python 2 + OpenCV 2)
  • dan lain sebagainya.

Sehingga berdasarkan penjelasannya, penamaan Virtual Environment tersebut mudah diingat dan mudah dipahami serta memungkinkan kita beralih versi Python dan OpenCV dengan mudah juga tidak membingungkan.

Mari kita lakukan verifikasi bahwa saat ini kita berada di Environment cv dengan menggunakan command workon:

workon cv

Install NumPy

Package pertama dan satu-satunya persyaratan Python yang kita butuhkan yaitu NumPy:

pip3 install numpy

Sampai sini kita dapat menyiapkan OpenCV 4 untuk dikompilasi pada mesin Ubuntu yang kita miliki.

Langkah 4: CMake dan kompilasi OpenCV 4 untuk Ubuntu

Pada langkah ini kita akan menyiapkan kompilasi dengan CMake diikuti dengan menjalankan command make untuk mengkompilasi OpenCV. Arahkan kembali terminal ke repositori OpenCV dan create + masuk ke folder build:

cd ~/opencv
mkdir build
cd build

Jalankan CMake untuk OpenCV 4

Sekarang ayo kita jalankan CMake untuk mengkonfigurasi OpenCV 4:

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 ..

Pada command di atas, teman-teman harus memastikan script struktur direktori pada OPENCV_EXTRA_MODULES_PATH dan PYTHON_EXECUTABLE sesuai dengan struktur direktori pada laptop atau komputer yang teman-teman miliki. Namun jika strukturnya sama maka script struktur direktori pada OPENCV_EXTRA_MODULES_PATH dan PYTHON_EXECUTABLE tidak perlu ada yang diperbaharui.

Setelah CMake selesai dieksekusi, teman-teman harus pastikan outputnya kurang lebih sama seperti yang saya miliki di bawah ini:

Perhatikan gambar di atas dan teman-teman luangkan waktu sejenak untuk memastikan Interpreter menunjuk ke binary Pyton 3. Kemudian pastikan juga bahwa numpy telah terinstal di dalam Virtual Environment (.virtualenvs).

Lalu yang terakhir pastikan Non-free algorithms juga berhasil terinstal dengan flag YES.

Melakukan Compile OpenCV 4

Sekarang saatnya kita melakukan compile OpenCV 4 dengan command berikut ini:

make -j8

Catatan: Pada command make di atas, terdapat argumen -j8 yang berfungsi menetapkan core CPU untuk kompilasi OpenCV 4 pada laptop saya. Pada umumnya laptop atau komputer memiliki core CPU yang bermacam-macam seperti 2, 4, 8, atau bahkan 16 core. Sehingga teman-teman harus memperbaharui command di atas dengan menyesuaikan jumlah core CPU laptop atau komputer yang teman-teman miliki. Jika terjadi kegagalan pada saat kompilasi, teman-teman dapat mencoba ulang kompilasi dengan 1 core CPU saja.

Berikut hasil kompilasi OpenCV 4 tanpa adanya error:

kemudian kita install OpenCV 4 dengan 2 command tambahan berikut:

sudo make install
sudo ldconfig

Langkah 5: Menghubungkan OpenCV 4 ke dalam Virtual Environment Pyhton 3 yang sudah kita buat

Sebelum kita menghubungkan OpenCV 4 ke dalam Virtual Environment Python 3, mari kita lihat versi Python yang kita miliki:

workon cv
python --version

Dengan mengetahui versi Python, kita dapat dengan mudah memilih direktori site-packages Python yang benar. Berikut path direktori yang saya miliki:

kemudian akses path direktori melalui terminal seperti berikut:

dan rename file cv2.cpython-38-x86_64-linux-gnu.so menjadi cv2 dengan menggunakan command berikut:

cd /usr/local/lib/python3.8/dist-packages/cv2/python-3.8
sudo mv cv2.cpython-38-x86_64-linux-gnu.so cv2.so

Catatan: Jika teman-teman memiliki OpenCV 3 dan OpenCV 4 secara bersama-sama, file cv2.cpython-38-x86_64-linux-gnu.so dapat teman-teman rename menjadi cv2.opencv4.0.0.so. Namun jika teman-teman tetap menggunakan cv2.so maka itu tidak menjadi masalah.

sub-step yang terakhir yaitu menghubungkan OpenCV cv2.so ke virtual environment cv yang kita miliki:

cd ~/.virtualenvs/cv/lib/python3.8/site-packages/
ln -s /usr/local/lib/python3.8/dist-packages/cv2/python-3.8/cv2.so cv2.so

maka cv2.so akan ada pada direktori ~/.virtualenvs/cv/lib/python3.8/site-packages/

Langkah 6: Menguji instalasi OpenCV 4 pada Ubuntu

Mari kita lakukan tes cepat untuk melihat apakah OpenCV siap digunakan atau belum, dengan cara buka terminal dan lakukan hal berikut:

workon cv
python
>>> import cv2
>>> cv2.__version__
>>> quit()

command pertama berfungsi untuk mengaktifkan virtual environment, lalu kita jalankan interpreter Python yang terhubung pada virtual environment yang kita miliki.

Catatan: Pada command ke 2 kita tidak perlu menentukan Python2 atau Python3 karena Python 3 akan secara otomatis dieksekusi pada virtual environment.

Kemudian pada saat kita mengeksekusi cv2.__version__ dan versi cv muncul, maka artinya kita sudah berhasil melakukan instalasi OpenCV pada laptop atau komputer kita.


Jika ada pertanyaan silahkan komen dan jika artikel ini dirasa bermanfaat, jangan lupa like dan sharenya ya teman-teman. ? Sampai bertemu di artikel selanjutnya.
Terima Kasih, Assalamu’alaykum… Salam KODINGINDONESIA

Referensi:

  1. https://www.pyimagesearch.com/
  2. https://opencv.org/

Anton Prafanto

Konten developer kodingindonesia.com & staf pengajar tetap di Universitas Mulawarman Samarinda

all author posts