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

27 Ekim 2018 Cumartesi

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

Dlib (Python) Kütüphanesinin Windows'a 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 Dlib kütüphanesinin Python programlama dili için Ubuntuya Kurulumu yazımı da inceleyebilirsiniz. Linux işletim sistemlerinde, Python kurulu gelmektedir ancak Windows için Python kurulumunu sizin yapmanız gerekmektedir. Python Windows Kurulumu yaptıktan sonra Python programlama dili için Dlib kurulumuna geçebilirsiniz. Burada 2 farklı kurulum yapacağız. Siz uygun olanını seçerek istediğiniz yöntem ile kurulumu gerçekleştirebilirsiniz.
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
Aşağıdaki adımları takip ederek Windows işletim sisteminize Python programlama dili için Dlib kurulumunu yapabilir ve uygulama geliştirebilirsiniz.



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 python




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-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.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 python



Adım 2.5.
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.6.
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. Kurulum hakkında detaylı bilgi içerdiği için ben bu yöntemi tercih ediyorum.




Adım 2.7.
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 kurulumunu Windows işletim sistemine 2 farklı yöntemle gerçekleştirmiş olduk.


29 Eylül 2018 Cumartesi

Dlib (C++) Kütüphanesinin Windows'a Kurulumu ve Qt ile Kullanılması

Dlib (C++) Kütüphanesinin Windows'a Kurulumu ve Qt ile Kullanılması


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 C++ dili için kurulum yapılacaktır ilerleyen günlerde Python dili için kurulumun nasıl yapıldığını anlatmayı planlıyorum. Aşağıdaki adımları takip ederek Windows işletim sisteminize Dlib kütüphanesinin kurulumunu yapabilir ve Qt ile uygulama geliştirebilirsiniz.


Adım 1. 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. İndirilen sıkıştırılmış dosya (dlib-19.16.zip) çıkarılır.


Adım 3. dlib-19.16 klasörü içerisine "build" adında boş bir klasör oluşturulur.


Adım 4.1. 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.


Adım 4.2. İndirilen sıkıştırılmış dosya çıkarılır.


Adım 4.3. Çıkartılan klasör içerisinde bulunan "bin" klasörünün içerisinde yer alan "cmake-gui.exe" çift tıklanarak açılır.


Adım 5.

  • "Where is the source code:" yazan bölümde indirmiş olduğumuz dlib-19.16 klasöründe bulunan "dlib" klasörü "Browse Source ..." butonuna basılarak seçilir.
  • "Where to build the binaries:" yazan bölümde indirmiş olduğumuz dlib-19.16 klasöründe sonradan 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 6.
(1. yol)
"Configure" butonuna bastıktan sonra yeni bir pencere açılacaktır. Bu pencerede derleme işlemi için kullanılacak derleyicinin seçilmesi istenmektedir. Ben daha önce bilgisayarıma Qt'nin MinGW derleyicisi ile kurulumunu yaptığım için burada yine tanımlı yerel (default native compiler) MinGW derleyicisini seçiyorum. Windows'a Qt Kurulumu için yazımı buradan inceleyebilirsiniz.


(2.yol) "Specify native compilers" seçeneği ile yerel derleyicilerinizi kendiniz belirleyebilirsiniz. Burada eğer Qt kurulumu yaptıysanız " Qt > Qt5.11.1 > Tools > mingw530_32 > bin " klasöründe yer alan gcc.exe C derleyicisi olarak g++.exe C++ derleyicisi olarak seçilebilir.



Adım 7. 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 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. Aşağıdaki ekran görüntüsünü inceleyecek olursak bilgisayarımda CUDA ve BLAS araçlarının kurulu olmadığını ve Dlib kütüphanesinin bu araçları kullanamayacağı belirtilmiş. Eğer CUDA kurulumunu önceden yapmış olsaydım Dlib kütüphanesini kullanarak geliştirdiğim algoritmayı GPU üzerinde çalıştırabilecektim. Buradan JPEG ve PNG formatlarındaki resimlerin Dlib ile kullanılabileceği gibi detaylı bilgilere ulaşmak mümkün. Ben sadece bir kaçından bahsettim siz detaylı inceleyebilirsiniz. Burada şimdilik bu konfigurasyonun yeterli olduğunu düşünerek "Generate" butonuna basıyoruz. "Generating done" mesajını gördüysek kuruluma başarılı bir şekilde devam ediyoruz demektir.



Adım 8. Komut satır programı (cmd, terminal) açılır ve derleme işleminin gerçekleştirildiği "build" klasörüne geçilir.


mingw32-make


komutu çalıştırılır. Bu komutu hızlı derleme için mingw32-make -j4 formatında da yazabilirsiniz. Burada "-j4" ifadesiyle derleme esnasında bilgisayarın 4 çekirdeğininde kullanılması gerektiği belirtilir. Kullanılacak çekirdek sayısını arttırıp azaltabilirsiniz. Ancak bu şekilde birden fazla çekirdek kullanılarak derleme yapıldığında hata alınabilmektedir. Benim tavsiyem tek çekirdek ile derleme işlemini yapmanız.



Adım 9. dlib-19.16 klasörü içerisinde "include" adında boş bir klasör oluşturuyoruz ve "dlib" klasörünü bu boş klasör içerisine taşıyoruz.



Adım 10. Sisteminize Qt kurulumu yaptıktan sonra Qt Creator açılır ve yeni proje oluşturulduktan sonra proje dosyasına (.pro uzantılı dosya) dlib kütüphanesinin derlendiği klasörün yolu aşağıdaki gibi tanımlanır.

Kurulum esnasında CUDA ve BLAS ile derleme yapılmadıysa sadece Dlib kütüphanesinin derlendiği klasörün yolunu tanımlamamız yeterlidir. CUDA ve BLAS ile derleme yapıldıysa Dlib kütüphanesinin derlendiği klasörün yolu ile CUDA ve BLAS kütüphanelerinin yolunu da tanımlamamız gerekmektedir.

INCLUDEPATH += C:\Users\Eyyup\Downloads\dlib-19.16\include
LIBS += -L"C:\Users\Eyyup\Downloads\dlib-19.16\build"
LIBS += -ldlib

Qt proje dosyasında (.pro) kütüphane tanımlanırken -L(kütüphane yolu), -l(kütüphane) şeklinde önekleri kullanılmaktadır.


(Kısa yol) Yukarıda anlatılan yöntemle proje dosyasına dlib kütüphanesinin derlendiği klasör yolunu tanımladığınızı ve bu şekilde onlarca proje oluşturduğunuzu düşünün. Yeni bir dlib versiyonu çıktığında ya da klasörü farklı bir yere taşıdığınızda oluşturduğunuz onlarca projeyi tek tek açarak bu tanımlamaları düzeltmeniz gerekecektir. Bu sıkıntılı durumu yaşamamak için yukarıda yapılan tanımlar bir text dosyası açılarak buraya yazılır. Daha sonra ".txt" olan dosya uzantısı ".pri" olarak değiştirilir ve bu dosya aşağıda tanımlandığı gibi Qt proje dosyasına (.pro) eklenir.

include(C:\Users\Eyyup\Downloads\dlib-19.16\dlib_library_path_19_16.pri)





1 Temmuz 2018 Pazar

Dlib (C++) Kütüphanesinin Ubuntu 16.04 için cuDNN Konfigurasyonu ile Kurulumu ve Qt ile Kullanılması

Dlib (C++) Kütüphanesinin Ubuntu 16.04 için CUDA-cuDNN Konfigurasyonu ile Kurulumu ve Qt ile Kullanılması


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 C++ dili için kurulum yapılacaktır ilerleyen günlerde Python dili için kurulumun nasıl yapıldığını anlatmayı planlıyorum. 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 Dlib kurulumunu yapabilir ve Qt ile uygulama geliştirebilirsiniz.

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

Ubuntu 16.04 için cuDNN Kurulumu


Adım 1. Dlib kütüphanesinin en son yayınlanan versiyonu sitesinden indirilir (Bu yazıda 19.13 versiyonu indirildi).




Adım 2. İndirilen sıkıştırılmış dosya çıkarılır.


Adım 3. dlib-19.13 klasörü içerisine "build" adında boş bir klasör oluşturulur.


Adım 4. 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


cmake-gui açılır ve "source code" kısmında dlib-19.13 klasörü içerisinde yer alan "dlib" klasörü seçilir. "build" kısmında ise dlib-19.13 klasörü içerisinde oluşturduğumuz boş klasör seçilir. Derleme bu klasör içerisine gerçekleştirilecektir. Daha sonra aşağıda yer alan "Configure" tuşuna basınız ve açılan pencerede varsayılan (default) yerel derleyicilerin derlemede kullanılmasını seçiniz.



Konfigürasyon bittiğinde aşağıdaki ekran görüntüsündeki gibi bir uyarı alabilirsiniz.


Bu uyarıda BLAS kütüphanesinin sisteminizde yüklü bulunmadığı ve eğer bu kütüphaneyi yüklerseniz kodunuzun daha hızlı çalışacağı uyarısı verilmiş. Bende bu uyarıyı dikkate alarak aşağıdaki kod parçasını çalıştırdım ve sistemime BLAS kütüphanesini kurdum. Ayrıca CUDA kurulumu yapmadıysanız olası göreceğiniz sonuçlar aşağıdaki ekran görüntüsünde çizilen alanlarda belirtilmiştir.


sudo apt-get install libopenblas-dev liblapack-dev


CUDA ve BLAS kurulumu yapılan bir bilgisayarda "Configure" tuşuna basınca aşağıdaki ekran görüntüsüne benzer bir sonuç elde edersiniz.



Adım 5. Daha sonra cmake-gui'de yer alan "Generate" tuşuna basınız.


Adım 6. Son aşamada "build" klasörü içerisinde aşağıdaki kod parçası çalıştırılarak derlemenin/kurulumun tamamlanması beklenir.


sudo make install



Adım 7. Dlib kütüphanesinin derleme işlemi başarı ile bitmiştir.


Bu adımda Qt ile kullanılması anlatılacaktır. Qt'nin Ubuntu 16.04'e kurulumu için önceki yazımı takip edebilirsiniz.
Ubuntu 16.04 için Qt Kurulumu

Sisteminize Qt kurulumu yaptıktan sonra Qt Creator açılır ve yeni proje oluşturulduktan sonra proje dosyasına (.pro uzantılı dosya) dlib kütüphanesinin derlendiği klasörün yolu aşağıdaki gibi tanımlanır.

Kurulum esnasında cuda ve blas ile derleme yapılmadıysa sadece dlib kütüphanesinin derlendiği klasörün yolunu tanımlamamız yeterlidir.

LIBS += -L"/home/eyyup/Downloads/dlib-19.13_blas_cuda/build"
LIBS += -ldlib

Kurulum esnasında CUDA ve BLAS ile derleme yapıldıysa dlib kütüphanesinin derlendiği klasörün yolu ile CUDA ve BLAS kütüphanelerinin yolunu da tanımlamamız gerekmektedir.

LIBS += -L"/home/eyyup/Downloads/dlib-19.13_blas_cuda/build"
LIBS += -ldlib
LIBS += -L"/usr/lib"
LIBS += -lopenblas
LIBS += -lcudnn
LIBS += -L"/usr/local/cuda/lib64"
LIBS += -lcublas
LIBS += -lcudart
LIBS += -lcurand
LIBS += -lcusolver

Qt proje dosyasında (.pro) kütüphane tanımlanırken -L(kütüphane yolu), -l(kütüphane) şeklinde önekleri kullanılmaktadır.

Aşağıdaki video'da CUDA ve BLAS olmadan yapılan kurulum (derleme) işlemi gösterilmektedir.


Aşağıdaki video'da CUDA ve BLAS ile kurulum (derleme) işlemi gösterilmektedir.


Burada Derin Öğrenme çalışmalarında başlagıç seviyesinde kullanılan Mnist, El Yazısı Rakamlardan oluşan veri setini sınıflandıran LeNet örneği çalıştırıldığında intel i7-8700K 6 çekirdekli yeni nesil işlemci de 3429 saniye yani 57 dakika 15 saniye sürmektedir. Aynı kod hiçbir değişiklik yapılmadan NVIDIA GTX 1080 ekran kartı üzerinde çalıştırıldığında 52 saniye sürmektedir. Bu örnekte GPU, CPU'ya göre 65 kat daha hızlı çalışmaktadır.

LeNet CPU (intel i7-8700K) sonuç


LeNet GPU (NVIDIA GTX 1080) sonuç


Artık projelerinizde Dlib kütüphanesini kullanabilirsiniz.