noprianto
noprianto
. 6 min read

Install OpenCV Raspberry

Bismillah,
Seperti pernyataan sebelumnya yang saya sampaikan pada postingan lalu bahwa saya akan mulai melangkah lebih jauh untuk memanfaatkan raspberry pi sebagai perangkat computer vision. Agara dapat digunakan kita membutuhkan paket atau framework untuk computer vision, salah satu yang terkenal adalah OpenCV(Open Source Computer Vision Library). Ditulis menggunakan bahasa pemrograman C/C++ dan dapat di-wrap oleh bahasa pemrograman java ataupun python yang dapat berjalan di multi platform seperti Windows, Linux, Mac OS, iOS dan Android. Table of content yang akan saya sampaikan adalah sebagai berikut

Install OpenCV

Untuk proses installasi OpenCV akan kita coba untuk dari source, mengapa demikian karena raspberry pi merupakan menggunakan arsitektur yang berbeda dari komputer pada umumnya. Beberapa perintah yang perlu dijalankan adalah sebagai berikut

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

Perintah di atas digunakan untuk menghapus beberapa paket yang tidak digunakan pada raspberry, salah satu adalah libreoffice. Lumayan bisa menghemat space MicroSD hampir 1 GB, setelah itu coba cek disk usage Anda harusnya lebih besar dari yang sebelumnya menggunakan command df -h

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential cmake unzip pkg-config
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 libcanberra-gtk*
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-dev

Perintah di atas adalah depedency atau paket-paket yang dibutuhkan ketika kita ingin memasang OpenCV pada raspberry. Yang selanjutnya download source OpenCV versi terbaru menggunakan command di bawah ini

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.1.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.0.1.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.0.1 opencv
mv opencv_contrib-4.0.1 opencv_contrib

OpenCV versi yang terakhir 4.0.1 ketika saya menulis artikel ini, Anda bisa mengecek versi yang terakhir pada situs resminya di sini. Ada 2 source yang akan kita download, yaitu opencv dan opencv_contrib. opencv_contrib berisi modul-modul tambahan dari opencv, versi yang Anda download harus sama. Selanjutnya kita membutuhkan virtualenv dan virtualenvwrapper, fungsi tool tersebut digunakan untuk manajemen projek yang kelak akan kita buat menggunakan python tentunya, untuk lebih jelasnya bisa mengunjungi blog ini. Perintah yang dapat digunakan adalah di bawah ini

sudo pip3 install virtualenv virtualenvwrapper

Setelah selesai kemudian kita perlu mengkonfigurasi virtualenv dan virtualenvwrapper agar setiap kita login ke raspberry dengan user tersebut mengeksekusi script virtualenvwrapper, tambahkan beberapa baris di bawah ini pada file .profile dalam home direktori menggunakan editor kesayangan Anda(vi, vim, atau nano)

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

Atau tanpa menggunakan editor, jalankan perintah dibawah ini pada terminal baris demi baris. Silakan pilih yang paling mudah menurut Anda

echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile

Untuk memberikan perubahan pada file .profile jangan lupa menjalankan perintah di bawah ini

source ~/.profile

Selanjutnya kita coba virtualenvwrapper tersebut, jalankan perintah di bawah ini

mkvirtualenv cv -p python3
workon cv

Outputnya harusnya menjadi seperti di bawah ini

(cv) pi@raspberrypi:~/Downloads $

Dengan menjalankan perintah di atas seharusnya nanti tampilan terminal Anda menjadi , kita akan membuat virtualenv dengan nama cv menggunakan python3 untuk interpreternya dan aktif pada virtualenv cv. Untuk lebih jelaskan silakan baca manualnya atau bisa lihat di sini. Selanjutnya silakan masuk ke direktori opencv dan buat folder build serta masuk direktori tersebut, kemudian jalankan command cmake seperti berikut

cd opencv
mkdir build
$ 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 ..

Beberapa baris terakhir seharusnya outputnya seperti di bawah ini, pastikan interpreter python3 dan numpy berada di dalam direktori .virtualenvs

--   Python 3:
-- Interpreter: /home/pi/.virtualenvs/cv/bin/python3 (ver 3.5.3)
-- Libraries: /usr/lib/arm-linux-gnueabihf/libpython3.5m.so (ver 3.5.3)
-- numpy: /home/pi/.virtualenvs/cv/lib/python3.5/site-packages/numpy/core/include (ver 1.16.2)
-- install path: lib/python3.5/site-packages/cv2/python-3.5

Karena proses compile membutuhkan waktu yang cukup lama dan memakan resource yang besar sehingga membutuhkan optimize pada swap raspberry pi Anda dengan mengedit file /etc/dphys-swapfile, silakan gunakan editor file kesayangan Anda. Jalankan perintah di bawah ini terkait hal tersebut

sudo nano /etc/dphys-swapfile
# set size to absolute value, leaving empty (default) then uses computed value
# you most likely don't want this, unless you have an special disk situation
#CONF_SWAPSIZE=100
CONF_SWAPSIZE=2048
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
make -j4

Setelah lama menunggu proses compile beberapa jam selanjutnya jalan perintah di bawah ini dan jangan lupa untuk mengembalikan konfigurasi swape seperti konfigurasi di awal swap size 100Mb, kemudian restart servicenya

sudo make install
sudo ldconfig

Langkah terakhir adalah dengan membuat simbolik link opencv yang telah kita compile ke dalam virtualenvs menggunakan perintah di bawah ini, perhatikan baik-baik untuk lokasi library OpenCV hasil kita compile.

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

Ujicoba OpenCV

Untuk mencoba hasil installasi opencv yang cukup memakan waktu lama, selanjutnya kita jalankan script di bawah ini. Jika berhasil seharusnya nanti muncul versi dari OpenCV yang kita install

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

Penutup

Demikianlah langkah-langkah yang cukup menguras waktu, semoga tulisan saya bermanfaat bagi temen-temen yang ingin memulai belajar OpenCV untuk tugas kampus ataupun project komersial. Pada tulisan yang akan datang akan saya coba membuat program sederhana menggunakan OpenCV untuk mendeteksi wajah menggunakan Haar. Ditunggu ya…

Referensi

comments powered by Disqus