Raspberry Pi'ye OpenCV Kurulumu
Bu yazı, PiMyLifeUp - Installing OpenCV on the Raspberry Pi kaynağından Türkçe'ye çevrilerek hazırlanmıştır.
Bu rehber boyunca, Raspberry Pi'nizde OpenCV kurulumu sürecinde size adım adım rehberlik edeceğiz.
![]()
Raspberry Pi'nize OpenCV kurmanın birkaç yolunu inceleyeceğiz. İlk ve en kolay yol, doğrudan paket deposundan kurmaktır. Bu size daha eski bir sürüm verir, ama birkaç dakika içinde çalışır hale gelmeniz anlamına gelir.
İkinci ve biraz daha karmaşık yol ise doğrudan kaynak kodundan derlemektir. Bu yöntemi kullanarak, Pi'nizde OpenCV'nin en son sürümüne sahip olursunuz, ancak kütüphanenin derlenmesi için bir saat beklemeye hazır olmalısınız.
OpenCV'nin ne olduğunu bilmeyenler için: Gerçek zamanlı bilgisayarlı görüyle ilgilenmeyi amaçlayan farklı programlama fonksiyonlarından oluşan bir kütüphanedir.
Bilgisayarlı görüyü kullanarak, görüntüleri ve videoları gerçek zamanlı olarak yorumlayabilirsiniz. Bu da hareket algılama ve yüz tanıma gibi görevleri nispeten kolay bir şekilde gerçekleştirmenize olanak tanır.
Raspberry Pi, OpenCV öğrenmeye başlamak için mükemmel bir platformdur ve aynı zamanda uygun fiyatlı, küçük bir cihaz olma özelliğini de taşır.
Bu eğitim, bir Raspberry Pi 5 üzerinde Raspberry Pi OS Bookworm'ün en son sürümü kullanılarak test edilmiştir.
Depodan Raspberry Pi'nize OpenCV Kurma
Raspberry Pi'nizde OpenCV'nin en son sürümünü çalıştırma konusunda endişeniz yoksa, bu kütüphaneyi doğrudan resmi paket deposundan kurabilirsiniz.
Kütüphanenin derlenmesini beklemeniz gerekmediğinden, bu yöntem çalışır hale gelmek için önemli ölçüde daha hızlıdır. Elbette dezavantajı, oldukça eski bir OpenCV sürümü çalıştırıyor olabilmenizdir.
OpenCV'nin en son sürümünü çalıştırmak istiyorsanız, bu kütüphaneyi kaynak kodundan derlemeyle ilgili bölümümüzü takip edin.
1. OpenCV'yi kurabilmemiz için önce paket listemizin ve paketlerimizin güncel olduğundan emin olmalıyız.
İlk komut paket listesi önbelleğini güncelleyecektir. İkincisi, bulduğu güncel olmayan tüm paketleri yükseltecektir.
sudo apt update
sudo apt upgrade
2. Sisteminiz güncellendikten sonra, Raspberry Pi'nize OpenCV kurmak için yapmanız gereken tek şey aşağıdaki komutu çalıştırmaktır.
Bu yazının yayınlandığı tarih itibarıyla, bu Pi'nize OpenCV 4.6 kuracaktır.
sudo apt install python3-opencv
3. Artık OpenCV kurulu olduğuna göre, OpenCV'yi test etme bölümüne atlayabilirsiniz.
Raspberry Pi'de OpenCV'yi Derleme
Aşağıdaki bölümlerde, Raspberry Pi'nizde OpenCV'nin en son sürümünü derleme sürecinde size adım adım rehberlik edeceğiz.
Kaynak koddan derlemek yavaş bir süreç olsa da, Pi'nizde OpenCV'nin tüm en yeni özelliklerine erişim sağlayacaktır.
Alternatif olarak, OpenCV Pi'nin paket deposu üzerinden de mevcuttur. Ancak bu sürüm genellikle önemli ölçüde güncelliğini yitirmiştir.
Pi'nizde OpenCV'yi Derlemek İçin Gereken Paketleri Kurma
1. Devam etmeden önce, önce mevcut paketleri güncellemeliyiz.
Aşağıdaki iki komutu çalıştırarak şu anda kurulu olan paketleri güncelleyebilirsiniz.
sudo apt update
sudo apt upgrade
2. Şimdi OpenCV'nin derlenmesi için ihtiyacımız olan tüm paketleri kurma sürecine başlayabiliriz.
Başlamak için, aşağıdaki komutu çalıştırın. Bu komut, OpenCV kodunu derlemek için gereken araçları içeren paketleri kuracaktır.
sudo apt install cmake ccache build-essential pkg-config git -y
3. Ardından, OpenCV'ye farklı görüntü ve video formatları için destek ekleyecek paketleri kuracağız.
Bu kütüphaneleri Raspberry Pi'nize aşağıdaki komutla kurun.
sudo apt install ffmpeg libjpeg-dev libtiff-dev libpng-dev libwebp-dev libopenexr-dev -y
sudo apt install libopenjp2-7-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libdc1394-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev -y
4. Bir sonraki adımımız, aşağıdaki komutu kullanarak OpenCV'nin arayüzü için gereken tüm paketleri kurmaktır.
sudo apt install libgtk-3-dev libqt5gui5 libqt5webkit5 libqt5test5 python3-pyqt5 -y
5. Bu sonraki paketler, OpenCV'nin Raspberry Pi'de makul bir hızda çalışması için kritik öneme sahiptir.
Aşağıdaki komutu çalıştırarak bu paketleri kurabilirsiniz.
sudo apt install libatlas-base-dev liblapacke-dev gfortran -y
6. Kurmamız gereken sondan bir önceki paket grubu, OpenCV'nin verileri yönetmek için kullandığı Hiyerarşik Veri Biçimi (HDF5) ile ilgilidir.
HDF5 paketlerini aşağıdaki komutu kullanarak Pi'nize kurun.
sudo apt install libhdf5-dev libhdf5-103 -y
7. Son olarak, aşağıdaki komutu kullanarak son birkaç paketi kurabiliriz.
Bu son birkaç paket, Raspberry Pi'mizde Python desteğiyle OpenCV'yi derlememizi sağlayacaktır.
sudo apt install python3-dev python3-pip python3-numpy -y
Bir sonraki bölüme geçmeden önce, tüm paketlerin başarıyla kurulduğundan emin olun.
Pi'nizin Swap Boyutunu Artırma
8. Raspberry Pi'mizde OpenCV'yi derlemek için gereken tüm paketler artık kurulu olduğuna göre, derleme sürecine başlamadan önce bazı hazırlık çalışmaları yapmamız gerekiyor.
Raspberry Pi'de OpenCV'yi derleme sürecine yardımcı olmak için şimdi geçici olarak takas (swap) alanının boyutunu artırmamız gerekecek.
Takas alanı, cihazın fiziksel RAM'i tükendiğinde işletim sistemi tarafından kullanılır. Takas belleği RAM'den çok daha yavaş olsa da, belirli durumlarda yine de yardımcı olabilir.
Aşağıdaki komutu çalıştırarak takas dosyası yapılandırmasını değiştirmeye başlayın.
sudo nano /etc/dphys-swapfile
9. Bu dosyanın içindeyken, takas alanının boyutunu tanımlayan aşağıdaki satırı bulmamız gerekiyor.
CONF_SWAPSIZE=100
Yukarıdaki satırı bulduktan sonra, "100" değerini "2048" olarak ayarlayın. Bu, Pi'nizin SD kartında 2GB boyutunda bir takas dosyası oluşturacaktır.
CONF_SWAPSIZE=2048
10. Değiştirdikten sonra, CTRL+X, ardından Y ve sonra Enter tuşlarına basarak dosyayı kaydedin.
11. Takas dosyası yapılandırmasında değişiklik yaptığımızdan, aşağıdaki komutu kullanarak servisini yeniden başlatmamız gerekiyor.
Servisi yeniden başlatarak, takas dosyasını yeniden oluşturmaya zorluyoruz.
sudo systemctl restart dphys-swapfile
OpenCV Kaynak Kodunu Raspberry Pi'nize Klonlama
12. Ardından, ihtiyacımız olan iki OpenCV deposunu Raspberry Pi'mize klonlayalım.
Bu iki komutu çalıştırmak, OpenCV'nin en son mevcut sürümünü git deposundan alacaktır.
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
Bu depolar oldukça büyük olduğundan, Raspberry Pi'nize klonlanmaları biraz zaman alabilir.
Raspberry Pi'nizde OpenCV'yi Derleme
13. Klonlanan "opencv" klasörünün içinde "build" adında bir dizin oluşturarak ve ardından çalışma dizinini buna değiştirerek başlayalım.
mkdir ~/opencv/build
cd ~/opencv/build
14. Artık yeni oluşturduğumuz build klasörünün içinde olduğumuza göre, Raspberry Pi'mizde OpenCV'yi derlemeye hazırlamak için cmake kullanabiliriz.
Gerekli makefile'ı oluşturmak için aşağıdaki komutu çalıştırın.
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 WITH_OPENMP=ON \
-D ENABLE_VFPV3=OFF \
-D BUILD_TESTS=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D CMAKE_SHARED_LINKER_FLAGS=-latomic \
-D OPENCV_PYTHON_INSTALL_PATH=/usr/lib/python3/dist-packages \
-D BUILD_EXAMPLES=OFF ..
15. Makefile başarıyla oluşturulduktan sonra, artık aşağıdaki komutu çalıştırarak OpenCV'yi derlemeye geçebiliriz.
Derleyiciye, mevcut her işlemci için bir derleyici çalıştırmasını söylemek amacıyla -j$(nproc) argümanını kullanıyoruz.
Bunu yapmak, derleme sürecini önemli ölçüde hızlandıracak ve Raspberry Pi üzerindeki her çekirdeğin OpenCV'yi derlemek için çalışmasını sağlayacaktır.
make -j$(nproc)
Derleme sürecinin epey zaman alabileceğini lütfen unutmayın. Raspberry Pi 4 üzerinde, bu süreç tamamlanması yaklaşık 1 saat sürdü.
Derleme süreci tamamlanamıyorsa veya takılmış gibi görünüyorsa, CPU'nun kilitlenmiş olma ihtimali vardır.
Bunu aşmak için, tek bir make işlemi çalıştırmayı deneyebilirsiniz. Bu, sorun olasılığını azaltmalı ama derleme sürelerinin uzamasına neden olmalıdır.
make
16. Derleme süreci tamamlandığında, OpenCV'yi Raspberry Pi'mize kurma aşamasına geçebiliriz.
Neyse ki bizim için bu oldukça basit bir süreçtir ve aşağıdaki komutu çalıştırmanızı gerektirir.
sudo make install
Bu komut, gerekli tüm dosyaları otomatik olarak ihtiyaç duyulan konumlara kopyalayacaktır.
17. Şimdi ayrıca işletim sisteminin kütüphane bağlantı önbelleğini yeniden oluşturmamız gerekiyor.
Aşağıdaki komutu çalıştırmazsak, Raspberry Pi OpenCV kurulumumuzu bulamayacaktır.
sudo ldconfig
Derleme Sonrası Temizlik
18. Raspberry Pi'mizde OpenCV'yi derlemeyi bitirdiğimize göre, artık bu kadar büyük bir takas dosyasına ihtiyacımız yok.
Aşağıdaki komutu kullanarak takas dosyası yapılandırmasını tekrar düzenleyelim.
sudo nano /etc/dphys-swapfile
19. Bu dosyanın içinde, aşağıdaki satırı bulun.
CONF_SWAPSIZE=2048
Takas boyutu satırını bulduktan sonra, değeri varsayılan değerine (bu yazının yayınlandığı tarih itibarıyla "100") geri değiştirin.
CONF_SWAPSIZE=100
20. Bitirdiğinizde, CTRL + X, ardından Y ve sonra Enter tuşlarına basarak dosyayı kaydedin.
21. Şimdi son temizlik görevimiz, takas dosyası servisini yeniden başlatmamızı gerektiriyor.
Servisi yeniden başlatmak, dosyayı 2GB'tan 100 MB'a küçültecektir.
sudo systemctl restart dphys-swapfile
Raspberry Pi'nizde OpenCV'yi Test Etme
1. OpenCV'nin artık Raspberry Pi'mize kurulu olup olmadığını test etmek için, Python 3 kurulumumuzu kullanacağız.
Aşağıdaki komutu çalıştırarak Python terminaline girin.
python3
2. Python içindeyken, artık aşağıdaki komutu kullanarak OpenCV Python modülünü içe aktarabiliriz.
Modülü içe aktararak, önce OpenCV'nin Pi'mizde yüklenip yüklenmeyeceğini kontrol edebiliriz.
import cv2
3. OpenCV modülü artık içe aktarıldığına göre, sürümünü alabilmemiz gerekir.
OpenCV'nin sürümünü almak için aşağıdaki komutu kullanın.
cv2.__version__
4. Her şey amaçlandığı gibi çalışıyorsa ve OpenCV Raspberry Pi'nize başarıyla kurulmuşsa, komut satırında aşağıdaki gibi bir metin görmelisiniz.
'4.9.0'
Sonuç
Umarız bu noktada, artık Raspberry Pi'nizde OpenCV çalışır durumdadır.
Bu kütüphane, Raspberry Pi'nizde bilgisayarlı görü uygulamak için kullanabileceğiniz zengin bir ücretsiz ve açık kaynaklı araç yelpazesine erişim sağlar.
Bu eğitimle ilgili herhangi bir sorunla karşılaşırsanız veya geri bildiriminiz varsa, aşağıya yorum bırakmaktan çekinmeyin.