DNN etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
DNN etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27 Ekim 2018 Cumartesi

Dlib (Python) Kütüphanesinin Ubuntu'ya Kurulumu

Dlib (Python) Kütüphanesinin (CUDA-cuDNN ile) Ubuntu'ya Kurulumu


Dlib yapay öğrenme - makine öğrenmesi (machine learning) algoritmalarını içeren C++ kütüphanesidir ve günlük hayatımızda karşılaştığımız problemleri çözmek için kullanabileceğimiz kompleks yazılımlar geliştirebileceğimiz bir araçtır. Yüz tanıma (face recognition), yüz tespiti (face detection), yüz modelleme (facial landmarks) gibi uygulamaları Dlib kütüphanesi ile kolayca geliştirebilirsiniz. Dlib C++ programlama dili ile kullanılan bir araç olmasının yanında Python programlama dili ile de kullanılabilmektedir. Python ile kullanmak için kurulumunuzu ona göre yapmanız gerekmektedir. Bu yazımda Python dili için kurulum yapılacaktır. Dlib kütüphanesinin C++ programlama dili için Windows'a kurulumu ve Ubuntu'ya kurulumu yazılarımı takip edebilirsiniz. Ayrıca bu kurulum da cuDNN konfigurasyonu da yer alacaktır böylece DLib kütüphanesi kullanarak geliştirdiğiniz algoritmalarınızı GPU üzerinde çalıştırabileceksiniz. Aşağıdaki adımları takip ederek Ubuntu 16.04 işletim sisteminize Python programlama dili için Dlib kurulumunu yapabilir ve uygulama geliştirebilirsiniz. Burada 2 farklı kurulum yapacağız. Siz uygun olanını seçerek istediğiniz yöntem ile kurulumu gerçekleştirebilirsiniz.

Kurulumu CUDA-cuDNN ile yapmak için bilgisayarınıza önceden CUDA-cuDNN kurulumu yapılmış olması gerekmektedir. Önceki yazılarımı takip ederek bilgisayarınıza CUDA-cuDNN kurabilirsiniz.

Ubuntu 16.04 için cuDNN Kurulumu
Ubuntu 16.04 için CUDA Kurulumu

Ayrıca kurulumu Python Sanal ortamına virtualenvwrapper kullanarak yapacağız. Neden sanal ortama ihtiyaç duyduğumuzu ve sanal ortam (virtualenv-virtualenvwrapper) kurulumu için ilgili yazıma bakabilirsiniz. Python Sanal Ortam (virtualenv-virtualenvwrapper) Kurulumu


1. pip Komutu ile Kurulum

Adım 1.1.
PyPI sitesinden dlib kütüphanesi için hangi Python kütüphaneleri ile uyumlu olduğunu kontrol ettikten sonra yeni bir terminal açıp aşağıdaki komutu çalıştırarak yeni bir Python3 sanal ortamı oluşturuyoruz.


mkvirtualenv dlib_1 -p python3




Burada sanal ortamınıza istediğiniz ismi verebilirsiniz, ben dlib_1 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.
Dlib için oluşturduğumuz yeni ortam içerisindeyken aşağıdaki komut çalıştırılarak Python programlama dili için Dlib kurulumu gerçekleştirilir.


pip install dlib




Adım 1.3.
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 dlib kütüphanesinin kurulu olduğunu görüyoruz. Ancak emin olmak için Python ortamına geçiş yapıp dlib 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 dlib versiyonunu kullandığınızı öğrenebilirsiniz.


1
2
import dlib
dlib.__version__


2. Kaynak Kodlarından cmake ile Kurulum

Adım 2.1
Kurulum için cmake'den faydalanacağız. Eğer cmake kurulu değilse aşağıdaki kodu çalıştırarak cmake'in kurulumunu gerçekleştirebilirsiniz.


sudo apt-get -y install cmake



Adım 2.2.
Dlib kütüphanesinin en son yayınlanan versiyonu sitesinden indirilir (Bu yazıda 19.16 versiyonu indirildi). Dlib, hızlı gelişim gösteren bir kütüphane olduğunda sürekli yeni versiyonları çıkmaktadır.


Adım 2.3.
İndirilen sıkıştırılmış dosya (dlib-19.16.zip) çıkarılır.


Adım 2.4.
İlk yöntemde olduğu gibi yine kurulumu Python sanal ortama yapacağız. Adım 1.1'e bakabilirsiniz. Aşağıdaki komutu çalıştırarak yeni sanal ortam oluşturuyoruz.


mkvirtualenv dlib_2 -p python3




Adım 2.5.
BLAS kütüphanesini yüklerseniz kodunuz daha hızlı çalışır. Aşağıdaki kod parçasını çalıştırarark sisteminize BLAS kütüphanesini kurabilirsiniz.


sudo apt-get install libopenblas-dev liblapack-dev


Adım 2.6.
Sanal ortam içerisindeyken indirmiş olduğumuz dlib klasörüne (dlib-19.16) geçiş yapılır ve aşağıdaki komut çalıştırılır.


python setup.py install






Adım 2.7.
Bu komutu çalıştırdıktan sonra konfigürasyon işlemi başlayacaktır. Konfigurasyon işlemi sırasında Dlib 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 Dlib kütüphanesinin 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. pip ile kurulum yaptığımızda kurulumun detaylarına hakim değildik. Ancak bu yöntem ile kurulumun hangi araçları kullanarak yaptığı hakkında detaylı bilgiler elimizde mevcut. Aşağıdaki ekran görüntülerini inceleyebilirsiniz. Burada Dlib kütüphanesini CUDA ile kullanabileceğimiz de belirtilmiştir. Öncesinde işletim sistemimize CUDA kurulumu gerçekleştirdiğimiz için konfigürasyon sırasında ihtiyaç duyulan CUDA dosyaları bulundu ve kurulum ona göre gerçekleştirildi. Kurulum hakkında detaylı bilgi içerdiği için ben bu yöntemi tercih ediyorum.







Adım 2.8.
Son aşamada Adım 1.3'de yaptığımız gibi 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 dlib kütüphanesinin kurulu olduğunu görüyoruz. Ancak emin olmak için Python ortamına geçiş yapıp dlib 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 dlib versiyonunu kullandığınızı öğrenebilirsiniz.


1
2
import dlib
dlib.__version__


Python programlama dili için Dlib kütüphanesinin CUDA ile kurulumunu Ubuntu 16.04 işletim sistemine 2 farklı yöntemle gerçekleştirmiş olduk.


20 Ekim 2018 Cumartesi

OpenCV (Python) Kütüphanesinin Ubuntu'ya Kurulumu

OpenCV (Python) Kütüphanesinin (Extra Modülü - Contrib ve CUDA-cuDNN ile) Ubuntu'ya 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-gui programından faydalanılacaktır ve GCC derleyicisi derleme işleminde kullanı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.


Adım 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.
İ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 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 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 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 6.
Kurulum için cmake-gui'den faydalanacağız. Eğer cmake-gui kurulu değilse aşağıdaki kodu çalıştırarak cmake-gui'nin kurulumunu gerçekleştirebilirsiniz.


sudo apt install cmake-gui



Adım 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 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 tanımlı yerel (default native compiler) derleyici seçilir.


Adım 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 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 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. Ubuntu'ya CUDA Kurulumu ve Ubuntu'ya cuDNN Kurulumu yazılarımı inceleyebilirsiniz. Eğer kurulumlar işletim sisteminizde mevcut ise WITH_CUDA özelliğini aktif hale getiriniz.



Adım 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 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 cv2.so 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 10.
"Generating done" mesajını gördükten sonra, kurulumu tamamlamak için "build" klasörüne geçilir (sanal ortam içerisinde olmalısınız) ve aşağıdaki kod parçası çalıştırılır.


sudo make install






Derleme işlemi bittiğinde /usr/local/lib/python3.5/site-packages/ klasöründe yani PYTHON3_PACKAGES_PATH değişkeninde belirtilen adreste ".so" uzantılı opencv kütüphanesi oluşturulur.


Ekran görüntüsünde de gördüğünüz gibi oluşturulan opencv kütüphanesinin ismi çok uzun ve kullanılmaya çok uygun değildir. Bu sebeple bu uzun isimli dosyayı aşağıdaki komutu çalıştırarak (bir dosyayı bir yerden başka bir yere taşımak için kullanılan mv komutu yardımıyla) cv2.so olarak değiştiriyoruz.


sudo mv cv2.cpython-35m-x86_64-linux-gnu.so cv2.so




Adım 11.
Son aşamada derleme işlemi sonunda oluşturulan cv2.so OpenCV kütüphanesini oluşturduğumuz sanal ortama tanıtmamız yani bağlamamız gerekmektedir. Bunu yapabilmek için ln -s komutuyla symbolic link oluşturulur. Oluşturduğumuz sanal ortamı klasör olarak açmak için Home(~) klasörüne geçilir ve ctrl + H kısayol tuşlarına basılır.


Bu tuşlara basıldığında gizli klasörler gösterilir. Bu gizli klasörler arasında virtualenvwrapper kurulumu sırasında oluşturduğumuz .virtualenv klasörü vardır. Oluşturduğumuz ve oluşturacağımız tüm sanal ortamlar bu klasör altında oluşturulur.



Burada .virtualenv/opencv_3.4.3/lib/python3.5/site-packages klasörüne geçilir ve bağlama işlemi için aşağıdaki kod çalıştırılır.


ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so




Ekran görüntülerinde gördüğünüz gibi sanal ortama başarılı bir şekilde opencv kütüphanelerini tanıtmayı başardık. Gerçekten başarılı olup olmadığımızı anlamak için cv2 python ortamında koda eklenir(import edilir). Eğer hata almıyorsak yaptığımız işlemler başarılıdır. Aşağıdaki kod parçasını çalıştırarak hem derleme işleminin başarılı olup olmadığını anlayabilir hem de kullandığınız OpenCV kütüphanesinin versiyonunu öğrenebilirsiniz.

1
2
import cv2
cv2.__version__