29 Ekim 2018 Pazartesi

OpenCV (Python) Kütüphanesinin Windows'a Kurulumu

OpenCV (Python) Kütüphanesinin (Extra Modülü - Contrib ile) Windows'a Kurulumu


OpenCV (Open Source Computer Vision Library) açık kaynak kodlu Bilgisayarla Görme kütüphanesidir. Hem akademik hem de ticari amaç için kullanımı ücretsizdir. C++, Python ve Java programlama dilleriyle Windows, Linux, Mac OS, iOS ve Android işletim sistemlerinde kullanılabilmektedir. OpenCV ile görüntü işleme (image processing), makine öğrenmesi (machine learning), bilgisayarla görme (computer vision), derin öğrenme (deep learning) alanlarında algoritma, uygulama geliştirebilirsiniz. Bunun için OpenCV size çok sayıda algoritmayı fonksiyon şeklinde kullanmanızı sağlayan imkanlar sunmaktadır. Yapmanız gereken tek şey dökümanlardan ilgili fonksiyonun aldığı parametre ve girdileri doğru vererek sonuçlarını doğru bir şekilde almak. Burada OpenCV'nin Python programlama dili ile kullanılması için yapılması gereken derleme işlemi (kurulum) gerçekleştirilecektir. Kurulum virtualenvwrapper kullanılarak oluşturulan sanal ortama yapılacaktır. Python Sanal Ortam virtualenvwrapper Kurulumu için önceki yazımdan faydalanabilirsiniz. Derleme için Cmake programından faydalanılacaktır. Ayrıca bu kurulum (derleme) esnasında OpenCV'nin extra modülü olarak anılan contrib modülü de derleme işlemine dahil edilecektir. OpenCV contrib içerisinde yer alan modüllere buradan bakabilirsiniz.



1. pip Komutu ile Kurulum

Adım 1.1.
Yeni bir terminal açıp aşağıdaki komutu çalıştırarak yeni bir Python3 sanal ortamı oluşturuyoruz.


mkvirtualenv opencv_3.4.3_pip -p python



Burada sanal ortamınıza istediğiniz ismi verebilirsiniz, ben opencv_3.4.3_pip ismini kullandım. Oluşturduğunuz sanal ortamdan deactivate komutuyla çıkabilir ve workon komutuyla tekrar oluşturduğunuz sanal ortama giriş yapabilirsiniz.


Adım 1.2.
Yeni oluşturulan sanal ortama geçiş yaptıktan sonra NumPy Python paketini bu aşamada sanal ortamınıza aşağıdaki komutu çalıştırarak kurmanız gerekmektedir.


pip install numpy



Adım 1.3.
Python kütüphanelerinin yer aldığı ve pip ile kolay kurulum yapmamızı sağlayan PyPI sitesinde opencv veya opencv ve contrib kütüphanelerininin kurulum dökümanlarını inceleyebilirsiniz. OpenCV için oluşturduğumuz yeni ortam içerisindeyken aşağıdaki komut çalıştırılarak Python programlama dili için OpenCV-Contrib kurulumu gerçekleştirilir.


pip install opencv-contrib-python





OpenCV'nin Extra modülü olan Contrib kurulumu yapmak istemiyor sadece OpenCV kurulumu yapmak istiyorsanız aşağıdaki kodu çalıştırabilirsiniz.



pip install opencv-python


Adım 1.4.
Son aşamada kurulumun başarılı olup olmadığının test edilmesi var. Sanal ortamınıza kurulan paketleri lssitepackages komutunu çalıştırarak görebilirsiniz. Bu komutu çalıştırdığımızda OpenCV ve NumPy kütüphanesinin kurulu olduğunu görüyoruz. Ancak emin olmak için Python ortamına geçiş yapıp OpenCV kütüphanesini koda eklemek (import etmek) gerekiyor. Eğer hata almıyorsak kurulum başarılıdır. Ayrıca aşağıdaki komutu çalıştırarak hangi OpenCV versiyonunu kullandığınızı öğrenebilirsiniz.


1
2
import cv2
cv2.__version__



2. Kaynak Kodlarından cmake ile Kurulum


Adım 2.1.
OpenCV kütüphanesinin sitesinde ki releases sayfasından istediğiniz versiyonunun "Sources" linkinde yer alan kaynak kodlarını indiriniz. (Bu kurulum (derleme) için OpenCV 3.4.3 versiyonu kullanılacaktır, aşağıdaki ekran görüntüsünden de göreceğiniz gibi aslında son versiyon olarak 4.0.0-alpha çıkmış bulunmaktadır ancak son çıkan versiyonlarda bir takım hatalar çıkmaktadır bu hatalar zamanla düzeltilerek daha kararlı bir hale geldikten sonra kullanılmasını tavsiye ederim.)


Adım 2.2.
İndirilen sıkıştırılmış dosya (opencv-3.4.3.zip) çıkarılır. opencv-3.4.3 klasörü içerisinde "source" ve "build" adında 2 yeni boş klasörler oluşturulur ve opencv-3.4.3 klasörü içerisinde yer alan diğer tüm dosyalar "source" klasörü içerisine taşınır.





Adım 2.3.
OpenCV ekstra modüllerinin yer aldığı Contrib dosyası github sayfasından indirilir. Burada dikkat etmeniz gereken nokta kurulumunu yapacağınız OpenCV versiyonuyla aynı versiyondaki contrib dosyasını indirmek olacaktır. Burada OpenCV-3.4.3 kurulumu yapacağımız için opencv_contrib-3.4.3 klasörü indirildi ve sıkıştırılmış dosya çıkartıldı.



Adım 2.4.
Yazının giriş bölümünde bahsettiğim gibi kurulumu sanal ortama yapacağız ve sanal ortam oluşturmak için virtualenvwrapper kullanacağız. Python Sanal Ortam virtualenvwrapper Kurulumu için önceki yazıma bakmanızı tavsiye ederim. mkvirtualenv komutuyla "opencv_3.4.3" adında yeni bir Python 3 sanal ortamı oluşturuyoruz. Burada sanal ortamınıza istediğiniz ismi verebilirsiniz. Oluşturduğunuz sanal ortamdan deactivate komutuyla çıkabilir ve workon komutuyla tekrar oluşturduğunuz sanal ortama giriş yapabilirsiniz.




Adım 2.5.
Yeni oluşturulan sanal ortama geçiş yaptıktan sonra ileride ihtiyaç duyacağımız NumPy Python paketini bu aşamada sanal ortamınıza aşağıdaki komutu çalıştırarak kurmanız gerekmektedir.


pip install numpy


Sanal ortamınıza kurulan paketleri lssitepackages komutunu çalıştırarak görebilirsiniz. Bu komutu çalıştırdığımızda NumPy paketinin sanal ortamımıza başarılı bir şekilde kurulduğunu görüyoruz.



Adım 2.6.
Kurulum için cmake-gui'den faydalanacağız. Öncelikle sitesinden işletim sisteminizin 32 bit ya da 64 bit olmasına göre .zip uzantılı cmake dosyası indirilir. İndirilen skıştırılmış dosya çıkarılır ve klasörün bulunduğu yolu Ortam değişkenlerine (Environmental Variables) eklenir. Cmake için kurulum gerekmez. Tek yapmanız gereken ilgili dosyayı indirip, çıkartmak ve dosya yolunu ortam değişkenlerine eklemek.




Adım 2.7.
Terminal açılır ve kurulumu yapacağımız, yeni oluşturduğumuz sanal ortama geçiş yapılır ve cmake-gui komutu çalıştırılarak sanal ortamınızda cmake-gui açılır. Burada cmake-gui'yi sanal ortamınızdan açmanız dikkat edilmesi gereken bir noktadır. Eğer sanal ortamdan açmazsanız, sanal ortamdaki Python ve paketlerini değil de, işletim sisteminizde mevcut bulunan Python ve paketlerini görür. Bu durumda bu klasör yollarını el ile düzeltmeniz gerekir. Tüm bunlarla uğraşmamak için cmake-gui'yi sanal ortamınızdan açmaya dikkat edin. Cmake-gui açıldıktan sonra;
  • "Where is the source code:" yazan bölümde opencv-3.4.3 klasöründe oluşturduğumuz "source" klasörü "Browse Source ..." butonuna basılarak seçilir.
  • "Where to build the binaries:" yazan bölümde opencv-3.4.3 klasöründe oluşturduğumuz "build" klasörü "Browse Build ..." butonuna basılarak seçilir.

ve aşağıda yer alan "Configure" butonuna basılır.



Adım 2.8. "Configure" butonuna bastıktan sonra yeni bir pencere açılacaktır. Bu pencerede derleme işlemi için kullanılacak derleyicinin seçilmesi istenmektedir. Burada bilgisayarınızda kurulu bulunan derleyicilere göre size seçenekler sunulacaktır. Eğer Visual Studio kurulu ise MSVC derleyicisini kullanabilirsiniz. Ya da Qt kurulumu ile birlikte kurulan MinGW derleyicisini kullanabilirsiniz.


Adım 2.9.1.
Derleyiciyi seçtikten sonra konfigürasyon işlemi başlayacaktır. "Configuration done" mesajını görene kadar bekleyiniz. Konfigurasyon işlemi sırasında OpenCV kütüphanesi ile kullanılabilecek diğer araçların bilgisayarınızda kurulu olup olmadığına bakılır ve sonunda size bunlar hakkında bilgiler verir. Bu kısım aslında çok detaylı bilgiler içermektedir ve hepsini tek tek açıklamak mümkün değildir. Şu an konfigurasyona dahil edilmeyen ancak ileride OpenCV'nin bir modülünü kullanmak istediğinizde bir takım eksik araçlardan kaynaklanan hatalar aldıkça hangi araçlara nerede ne zaman ihtiyaç duyacağınızı daha iyi anlayacaksınız.


Adım 2.9.2.
OpenCV'nin extra modüllerini (opencv contrib) yüklemek için OPENCV_EXTRA_MODULES_PATH özelliğinde indirmiş olduğumuz opencv_contrib-3.4.3 klasörü içerisinde yer alan modules klasörünün yolu tanımlanır.


Adım 2.9.3.
OpenCV algoritmalarını özellikle Derin Öğrenme (Deep Neural Network) algoritmalarını GPU üzerinde çalıştırmak için işletim sisteminize CUDA ve cuDNN kurulumlarının yapılmış olması gerekmektedir. Eğer kurulumlar işletim sisteminizde mevcut ise WITH_CUDA özelliğini aktif hale getiriniz.



Adım 2.9.4.
Eğer OpenCV ile birlikte Python örneklerinin de derlenmesini istiyorsanız BUILD_EXAMPLES ve INSTALL_PYTHON_EXAMPLES özellikleri AKTİF hale getirilirken INSTALL_C_EXAMPLES özelliği PASİF duruma getirilir.


Adım 2.9.5.
Cmake-gui'de PYTHON ile ilgili tüm özellikleri aşağıdaki ekran görüntüsünde görebilirsiniz. Buradan PYTHON2, PYTHON3 tercihlerinizi ayarlayabilirsiniz. Bizim amacımız PYTHON3 ile sanal ortama kurulum yapmak olduğundan PYTHON3_EXECUTABLE özelliğinde belirtilen klasör yolunun bizim oluşturduğumuz sanal ortamda bulunan python3 için doğru olmasıdır. Bununla birlikte PYTHON3_INCLUDE_DIR ve PYTHON3_NUMPY_INCLUDE_DIRS özelliklerinde doğru klasör yolunun belirtildiğine dikkat edin. Son olarak PYTHON3_PACKAGES_PATH değişkeninde yazan klasör yolunu unutmamamız gerekir, çünkü derleme işlemi sonunda OpenCV kütüphanesi burada belirtilen burada belirtilen adreste oluşturulacaktır.

Tüm bu işlemlerden sonra "Configure" butonuna birkez daha basılır "Configuring done" mesajını gördükten sonra "Generate" butonuna basılır.



Adım 2.10.
"Generating done" mesajını gördükten sonra, kurulumu tamamlamak için "build" klasörüne geçilir. Eğer derleyici olarak MSVC seçtiyseniz bu klasör içerisinde OpenCV.sln adında MSVC proje dosyası (Solution) oluşacaktır. Bu dosyaya çift tıklayarak Visual Studio'da açın.


Adım 2.11.
Visual Studio açıldıktan sonra Build sekmesine tıklayın. Daha sonra bu sekme içerisinde yer alan Batch Build... seçeneğine tıklanır. Bu seçeneğe tıkladığınızda yeni bir pencere açılacaktır.


Açılan pencerede ALL_BUILD ve INSTALL seçeneklerini aktif hale getiriyoruz ve Build butonuna basıyoruz.


Derleme işlemi başlayacaktır ve bitene kadar beklemeniz gerekir. Bu işlem kuruluma dahil ettiğiniz bölümlere göre çok uzun sürebilir. Derleme işlemi bittiğinde cmake-gui'de bahsettiğimiz PYTHON3_PACKAGES_PATH değişkeninde tanımlı adreste cv2 ile başlayan ".pyd" uzantılı bir dosya oluşması gerekir. Bu dosya oluştuysa derleme işlemi başarılıdır. Aynı dosya opencv-3.4.3\build_msvc_64\lib\python3\Release klasöründe de bulunmaktadır.


Adım 2.12.
Hata almadan OpenCV kütüphanesini Python ortamına eklemek için build klasörü içerisinde bulunan opencv-3.4.3\build\bin\Release klasör yolu Ortam değişkenleri (Environmental Variables) eklenmelidir.


Adım 2.13.
OpenCV'yi, oluşturduğumuz sanal ortamda kullanmak için sanal ortam klasörü içerisinde yer alan opencv-3.4.3\Lib\site-packages klasörüne Adım 2.11'de bahsettiğimiz ".pyd" uzantılı dosyayı kopyalamamız gerekiyor. Bu işlemin ardından kurulumu test etmek için terminalde sanal ortama geçiş yapılır. Sanal ortam içerisindeyken Python ortamına geçilir ve aşağıdaki kod parçası çalıştırılır. Eğer hata almıyorsak kurulum başarılıdır.



1
2
import cv2
cv2.__version__


Python programlama dili için OpenCV kütüphanesinin kurulumunu Windows işletim sistemine 2 farklı yöntemle gerçekleştirmiş olduk. Eğer algoritmalarınızı GPU üzerinde CUDA ile çalıştırmak istiyorsanız ya da ihtiyaç duyduğunuz araçlar için ekleme çıkarma işlemi yaparak derleme işlemini kendinize özgü hale getirmek istiyorsanız 2. yöntemi tercih etmenizi öneririm.



Hiç yorum yok:

Yorum Gönder