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:
- Pada saat artikel ini dibuat saya menggunakan OS Ubuntu 20.04.
- dan versi Python yang saya gunakan yaitu versi Python 3.8.10.
- 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:
- https://www.pyimagesearch.com/
- https://opencv.org/