Install OpenCV 4 di Raspberry Pi

· 7 menit untuk membaca
Install OpenCV 4 di Raspberry Pi
Install OpenCV 4 di Raspberry Pi

OpenCV (Open Source Computer Vision Library) adalah library untuk Computer Vision dan Machine Learning dengan lisensi open source. OpenCV dibangun untuk menyediakan infrastruktur yang umum digunakan pada Computer Vision. Menurut website sumbernya, OpenCV dibangun dengan 2500 lebih algoritma yang komprehensif untuk Computer Vision dan Machine Learning.

Lalu untuk apa penggunaan OpenCV?. Mungkin anda pernah mengupload foto di sosial media Facebook. Lalu tiba-tiba dengan cerdasnya facebook mengenali setiap wajah teman anda untuk di tag. Atau jika anda jalan-jalan di jakarta, dan anda melakukan pelanggaran lalulintas. Tiba-tiba anda akan mendapatkan tilang secara otomatis. Ini adalah hasil kerja Computer Vision, karena komputer akan melihat dan mendeteksi obyek yang di sesuaikan dengan program.

Pada tutorial kali ini kita akan coba menginstall OpenCV pada perangkat Raspberry Pi. Yang selanjutnya akan bisa di kembangkan ke aplikasi kamera pintar seperti pendeteksi wajah (Face Recognition), pengenalan obyek (Object Detection), atau hanya untuk kamera keamanan yang cerdas.

Persiapan

Siapkan 1 Unit Raspberry Pi yang sudah terinstall Raspbian Stretch fresh. Untuk cara install Raspberry Pi, silahkan anda lihat artikel Cara Install Raspberry Pi Secara Headless atau Cara Install Raspberry Pi dengan NOOBS. Siapkan juga koneksi internet yang memadai, karena kita akan mendownload software yang cukup besar.

Jika anda tidak menggunakan display, anda harus mengaktifkan SSH server dan VNC Server di Raspberry Pi anda. Caranya bisa ditemukan di artikel Instalasi secara Headless.

Install OpenCV 4

Silahkan mengikuti langkah-langkah instalasi di bawah ini. Pada saat artikel ini di tulis, kami menggunakan Raspberry Pi 3 model B+ dengan RAM 1GB dan 4 Core Prosesor. Waktu untuk instalasi kurang lebih 2 hingga 5 jam, tergantung kecepatan internet dan SD Card anda. Ikuti langkah-langkah dengan seksama agar instalasi OpenCV ini berhasil.

Expand Filesystem

Pada saat Raspberry Pi anda di Install, file system yang di gunakan adalah file system dari image asli. Kita akan menggunakan semua kuota yang ada pada Micro SD kita. Ketikan peritah berikut;

sudo raspi-config

Setelah muncul display config Raspberry Pi, pilih pada Advanced Option lalu tekan tombol Enter. Selanjutnya pilih pada pilihan A1 Expanded Filesystem. Anda akan di peringatkan bahwa filesystem baru akan aktif setelah Raspberry Pi anda di reboot. Pilih OK dan Finish, jika ada permintaan Reboot, Silahkan pilih Reboot.

Tampilan Raspi Config. Pilih pada Advanced Option
Tampilan Raspi Config. Pilih pada Advanced Option
Pilih pada A1 Expand Filesystem
Pilih pada A1 Expand Filesystem

Hapus Aplikasi Yang tidak Diperlukan

Selanjutnya kita akan coba menghapus aplikasi yang tidak diperlukan untuk menghemat kapasitas SD Card. Jika SD Card anda cukup besar, dan anda tidak ingin menghapus aplikasi yang tidak di perlukan, anda bisa mengabaikan langkah ini.

sudo apt-get purge wolfram-engine -y
sudo apt-get purge libreoffice* -y
sudo apt-get clean
sudo apt-get autoremove -y

Install software yang diperlukan

Sebelum kita mengcompile OpenCV, ada beberapa software yang di perlukan untuk instalasi. Ketikan perintah berikut di Raspberry Pi anda untuk menginstall software pendukung.

Ada baiknya anda merubah repositori ke repositori Indonesia agar proses  instalasi lebih cepat. Caranya anda bisa mengikuti langkah di artikel Mengubah Repositori Indonesia di Raspberry Pi.

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install build-essential cmake unzip pkg-config -y
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libxvidcore-dev libx264-dev -y
sudo apt-get install libgtk-3-dev -y
sudo apt-get install libcanberra-gtk* -y
sudo apt-get install libatlas-base-dev gfortran -y
sudo apt-get install python3-dev -y

Download OpenCV

Selanjutnya, kita akan coba untuk mendownload source OpenCV terbaru. Anda bisa melihat versi terbaru melalui halaman resmi OpenCV di https://opencv.org/releases/. Saat artikel ini di buat, versi terbaru adalah versi 4.1.0. Kita akan menginstall versi terbaru tersebut. Ada 2 file yang akan kita download, yaitu OpenCV dan OpenCV Contrib. Ketikan perintah berikut untuk mendownload kedua file tersebut di direktori utama.

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

Perintah tersebut akan mendownload file OpenCV dan di simpan ke dua buah file dengan nama opencv.zip dan opencv_contrib.zip. Selanjutnya, ekstrak ke dua file tersebut.

unzip opencv.zip
unzip opencv_contrib.zip

Hasil ekstraksi diatas adalah 2 buah folder yaitu opencv-4.1.0 dan opencv_contrib-4.1.0. Kita akan rename ke dua folder tersebut untuk mempermudah instalasi menjadi opencv dan opencv_contrib.

mv opencv-4.1.0 opencv
mv opencv_contrib-4.1.0 opencv_contrib

Hapus file opencv.zip dan opencv_contrib.zip untuk menghemat space.

rm -f opencv.zip opencv_contrib.zip

Konfigurasi Virtual Environment untuk Python3

Virtual Environment berguna agar semua instalasi yang dilakukan hanya bekerja di sistem virtual. Ini akan mempermudah agar instalasi tidak bercampur dengan sistem utama. Selain itu virtual environment akan menjalankan versi berapa Python default yang akan di jalankan. Dengan Virtual Environment, akan mengisolasi sistem utama dari kesalahan kesalahan konfigurasi. Kita akan menginstall virtualenvwrapper dengan perintah pip.

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

Untuk menyelesaikan instalasi, kita akan mengupdate file ~/.profile. Buka dan modifikasi ~/.profile dengan perintah nano.

nano ~/.profile

Lalu sisipkan kode berikut.

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

Simpan file ~/.profile dengan menekan tombol CTRL+X dilanjutkan dengan konfirmasi y.

Contoh hasil akhir file ~/.profile
Contoh hasil akhir file ~/.profile

Selanjutnya, gunakan file ~/.profile sebagai source.

source ~/.profile

Konfigurasi selesai, selanjutnya kita akan coba membuat Virtual Environment baru, misalnya dengan nama cv dengan versi Python 3 sebagai default.

mkvirtualenv cv -p python3

Selanjutnya kita akan bekerja pada environment cv tersebut.

workon cv

Sekarang kita sudah berada di Virtual Environment cv, di terminal anda akan di tandai dengan tanda (cv) seperti gambar berikut.

Virtual Environment cv
Virtual Environment cv

Install NumPy

Selanjutnya kita akan install numpy pada environment kita. NumPy adalah library Python untuk Scientific Computing. Ketikan kode berikut, pastikan anda sudah berada di Virtual Environment cv.

pip install numpy

Selanjutnya kita akan mengcompile OpenCV di envoronment cv.

Compile OpenCV

Konfigurasi CMake OpenCV

Sebelum proses compile, kita akan melakukan konfigurasi OpenCV. Semua konfigurasi akan di simpan pada folder build di folder utama opencv. Ketikan perintah berikut.

cd ~/opencv
mkdir build
cd build

Selanjutnya jalankan perintah CMake dengan konfigurasi berikut.

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D BUILD_TESTS=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=OFF ..

Tunggu hingga proses CMake selesai. Pada tahap ini prosesnya lumayan lama, anda harus sabar menunggu.

Menaikan Swap

Swap Space akan membantu memory utama Raspberry pi. Kita akan coba menaikan swap space menjadi 2GB. Caranya adalah, edit file /etc/dphys-swapfile, dan lakukan konfigurasi pada variabel CONF_SWAPSIZE. Secara default, ukuran swap Raspberry pi adalah 100.

sudo nano /etc/dphys-swapfile

Edit pada bagian CONF_SWAPSIZE menjadi:

CONF_SWAPSIZE=2048

hasil akhir file seperti contoh pada gambar di bawah ini. Tekan CTRL+X dan konfirmasi Y untuk menyimpan file.

Menaikan Limit SWAP space
Menaikan Limit SWAP space

Selanjutnya, aplikasikan ukuran swap yang baru lalu start swap service dengan perintah berikut.

sudo dphys-swapfile setup
sudo dphys-swapfile swapon

Anda bisa mengecek konfigurasi swap yang baru dengan perintah:

free -m

Outputnya bisa terlihat seperti gambar di bawah ini. Dapat dilihat bahwa total swap yang baru adalah 2047MB (atau 2GB).

Cek Konfigurasi Swap Baru
Cek Konfigurasi Swap Baru

Sekarang anda siap untuk mengcompile OpenCV.

Compile OpenCV

Kita akan mengcompile OpenCV dengan menggunakan semua core prosesor Raspberry Pi. Ini akan menggunakan semua resource prosesor dan akan membuat panas Raspberry Pi anda. Pastikan Raspberry Pi anda menggunakan pendingin heatsink atau kipas, dan simpan Raspberry Pi anda di ruangan dengan suhu yang cukup dingin.

Pada saat proses make, akan memakan waktu yang cukup lama, jadi anda harus cukup sabar. Ketikan perintah berikut untuk memulai proses;

make -j4

Opsi -j4 akan menggunakan semua 4 core prosesor anda. Anda bisa menggunakan 2 core atau 3 core. Konsekuensinya, proses akan semakin lama.

Setelah proses compile selesai, install dengan perintah berikut.

sudo make install
sudo ldconfig

Setelah proses compile dan install OpenCV selesai, selanjutnya kita akan membuat symlink module OpenCV agar dapat bekerja di Virtual Environment. Ketikan perintah berikut untuk membuat symlink.

ln -s  /usr/local/lib/python3.5/site-packages/cv2/python-3.5/cv2.cpython-35m-arm-linux-gnueabihf.so ~/.virtualenvs/cv/lib/python3.5/site-packages/cv2.so

Test OpenCV

Selanjutnya kita akan melakukan test OpenCV apakah sudah bisa bekerja pada Virtual Environment kita. Ketikan perintah berikut untuk mengeksekusi python di environment cv.

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

Atau dengan cara:

python -c 'import cv2; print(cv2.__version__)'

Pada perintah di atas kita akan menjalankan program python yang menampilkan versi dari OpenCV. Apabila anda mendapatkan respon seperti ini:

Hasil Test OpenCV

Berarti OpenCV sudah siap di gunakan. Sampai tahap ini, proses Instalasi OpenCV sudah selesai. Pada artikel selanjutnya, kita akan membuat proyek sederhana Computer Vision dengan OpenCV.

Kesimpulan

Install OpenCV di Raspberry Pi cukup rumit dan cukup memakan waktu. Anda harus teliti tahap demi tahap tanpa ada yang terlewat. Namun kerumitan saat install OpenCV akan terbayar saat anda membuat proyek pertama nanti. Kita akan coba membuat kamera keamanan pendeteksi manusia, kamera pendeteksi wajah, dan deep learning deteksi objek dengan TensorFlow.

Ikuti terus TeknoTut untuk mendapatkan artikel-artikel tentang teknologi.