how to install etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
how to install etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

1 Nisan 2020 Çarşamba

Qt Android Kurulumu

Qt Android Kurulumu


Qt, birden çok platformu destekleyen (cross-platform) masaüstü, gömülü sistem ve mobil ortamlar için grafiksel kullanıcı arayüzü geliştirmemizi sağlayan bir araçtır.
Aslında Qt'yi sadece arayüz hazırlama programı olarak nitelendirmek Qt'ye yapılmış büyük haksızlıktır. Qt içerisinde çok gelişmiş C++ modülleri, sınıfları vardır. Qt ile kullanıcı arayüzü geliştirmek için C++ programlama dili kullanılmaktadır. Qt'nin bana göre en önemli avantajı birçok işletim sisteminde (Windows, Linux, Mac) kullanılabiliyor olmasıdır (cross-platform özelliği).
Qt'nin ticari ve açık kaynak (open source) olmak üzere 2 çeşit lisansı mevcuttur. Hobi amaçlı kullanım ücretsizdir.
Algoritma geliştirirken veya test ederken bir arayüz hazırlayarak onun üzerinde çalışmanın işleri kolaylaştırdığını, zaman kazandırdığını ve sonuçları daha iyi yorumlama fırsatı sunduğunu düşünüyorum. Ben genelde bu sebeple Qt'yi kullanıyorum. Ayrıca ağ bağlantısı olan cihazların uzaktan kullanılması için Qt ile Android işletim sisteminde çalışan mobil uygulamalar geliştiriyorum.
Bu kurulum ile amacımız masaüstü için daha önceden hazırladığımız programların android işletim sistemine sahip cep telefonunda çalıştırmaktır. Tamamiyle Android uygulama geliştirmek değildir. Zaten Qt'yi biliyorsanız ve mobil uygulama geliştirme ihtiyacınız varsa sıfırdan başka bir programlama dili veya program öğrenmeden mevcut bilgimizi kullanarak geliştirdiğimiz masaüstü uygulamaları Android işletim sisteminde çalıştırılabilir hale getirmektir.
Bu yazımızda Android işletim sisteminde çalışacak mobil uygulamalar için Qt kurulumunu gerçekleştireceğiz. Kurulumu yaptıktan sonra hazırlamış olduğum Ücretsiz Qt Derslerini izleyerek Qt ile ihtiyacınız olan mobil uygulamaları geliştirebilirsiniz.


1. Qt'yi Tanıyalım

Qt ile birlikte sıklıkla kullanılan Qt Creator ve Qt Designer araçları bu bölümde kısaca tanıtılacaktır.

1.1. Qt Creator Nedir ?

Qt Creator, Qt ile daha rahat ve daha kolay arayüz geliştirmenizi sağlayan Bütünleşik Geliştirme Ortamı (Integrated Development Environment, ide) olarak adlandırılır. Qt Creator ile içerisinde barındırdığı araçlar sayesinde proje oluşturmak ve burada saymakla bitiremeyeceğim bir çok ayarı yapmanız çok kolaydır. Qt Creator, içerisinde aynı zamanda Qt Designer'ı da içermektedir. Qt Designer ise sürükle-bırak tekniği ile arayüz tasarımı yapmanızı sağlayan tasarım aracıdır. Qt'de arayüz tasarımı için 2 seçenek vardır. Qt Designer aracında sürükle-bırak kolaylığı ile tasarım yapılabildiği gibi kod yazarak da tasarım yapılabilir.


Zaman içerisinde farklı logolar kullanılsa da genelde Qt Creator için aşağıdaki logo kullanılmaktadır.


1.2. Qt Designer Nedir ?

Qt Designer, tek başına da kurulup kullanılabildiği gibi Qt Creator içerisinde de kullanılabilmektedir. Eğer Qt Creator kullanıyorsanız Qt Creator içerisindeki Qt Designer işinizi görecektir. Ayrıca Qt Designer kurmanıza gerek yok. Genel olarak aşağıdaki ikon Qt Designer ikonu olarak kullanılmaktadır.


Qt Designer'da arayüz elemanları widget box olarak adlandırılan ekranın sol bölümünde yer almaktadır. Buradan seçilen arayüz elemanı aşağıda gösterildiği gibi sürükle-bırak tekniği ile arayüz tasarımına eklenmektedir. Daha detaylı bilgilere Ücretsiz Qt Derslerini izleyerek ulaşabilirsiniz.


2. Qt Android Kurulumu

Qt Android kurulumunu aşağıdaki adımları takip ederek gerçekleştireceğiz.

2.1. Mevcut Qt Kurulumunun Kontrol Edilmesi

Bu adımda eğer daha önceden bilgisayarınıza Qt kurulumu gerçekleştirdiyseniz ( Windows için Qt Kurulumu , Ubuntu (Linux) için Qt Kurulumu ), bu kurulumun Android için mobil uygulama geliştirmeye yeterli olup olmadığı kontrol edilecektir.
Bunun için öncelikle Qt Creator açılır ve üst bölümde yer alan Tools sekmesinde Options seçeneğine tıklanır.


Açılan pencerede sol bölümde yer alan Build & Run seçilir. Bu bölümde yer alan Kits ve Qt Versions sekmelerinde aşağıdaki ekran görüntüsünde yer alan Android ile alakalı bölümler yoksa mevcut kurulumunuz ile Android işletim sistemi için mobil uygulama geliştiremezsiniz.



Android kurulumu olmayan MinGW32 kurulumu olan Qt kurulumu için Kits ve Qt Versions sekmelerinde aşağıdaki ekran görüntüsüne benzer bir sonuç elde edersiniz.



2.2. Qt Android Kurulumu

Qt Android kurulumu için elimizde aşağıdaki şemada gösterildiği gibi 2 seçenek mevcuttur. Eğer Android konfigürasyonu olmayan mevcut Qt kurulumumuz varsa bu kuruluma sonradan MaintenanceTool ile Android konfigurasyonu ekleyebiliriz. 2. seçenek ise sıfırdan içerisinde Android konfigürasyonu barındıracak şekilde Qt kurulumunu gerçekleştirmektir.


Bu 2 farklı kurulum yöntemi detaylı olarak yazının sonunda yer alan videoda açıklanmıştır ve kurulumlar adım adım gerçekleştirilmiştir. Her 2 yöntem için ortak olan Qt kurulumu sırasında yer alan Android konfigürasyon ekleme adımı aşağıdaki ekran görüntüsünde gösterilmiştir. Bu adıma ulaşmak için önceki yazılarımı inceleyebilirsiniz ( Windows için Qt Kurulumu , Ubuntu (Linux) için Qt Kurulumu ).


2.3. JDK - NDK - SDK Kurulumları

Bir önceki adımda yapmış olduğumuz işlem ile Qt'ye dedik ki "Ben Android ile mobil uygulama geliştirmek istiyorum kendini buna göre ayarla" ve Qt kendisini Android ile çalışacak şekilde ayarladı. Şimdi Qt bize diyor ki "Ben kendimi Android ile çalışacak şekilde ayarladım şimdi benim ihtiyaç duyduğum dış kaynaklı araçları kurman gerekiyor".
Biz de Qt'nin sözlerini dikkate alarak onun ihtiyaç duyduğu dış kaynaklı araçları kurma işlemine geçiyoruz. Bunun için öncelikle daha önce yaptığımız gibi Qt Creator açılır ve üst bölümde yer alan Tools sekmesinde Options seçeneğine tıklanır.


Açılan pencerede sol bölümde yer alan Devices seçilir ve bu seçimle birlikte güncellenen pencerede üst bölümde yer alan Android sekmesi seçilir. Açılan ekran hem Qt nin ihtiyaç duyduğu araçları JDK (Java Development Kit), NDK (Native Development Kit), SDK (Software Development Kit) hem de bu araçları yüklemeniz için ihtiyaç duyduğunuz kaynaklara yönlendirmeler içermektedir.


Bu araçların yüklenme işlemi detaylı olduğu ve yazı ile anlatmak zahmetli olduğu için burada anlatılmayacaktır. Yazının sonunda yer alan videoda detaylar ve kurulumlar mevcuttur.
Qt Android kurulumunda en zahmetli olan şey burada yer alan paketlerin ve Qt versiyonunun birbirleriyle uyumlu olarak çalışan versiyonlarını denk getirmektir.
Aşağıdaki tabloda birbirleriyle uyumlu çalışan paket versiyonları gösterilmektedir.

Qt Creator 4.6.2
Qt 5.11.1 veya 5.12.0
JDK (Java Development Kit) 8u241
NDK (Native Development Kit) r10e
SDK (Software Development Kit) 26.1.1


2.4. Qt ile Mobil Uygulama Geliştirme

Qt Android kurulumunu ve birbiri ile uyumlu olarak çalışan ihtiyaç duyulan paket kurulumlarını başarılı bir şekilde yaptıktan sonra Qt ile mobil uygulama geliştirme aşamasına geçebiliriz. Qt ile aşağıdaki şemadan da görüleceği gibi Qt Widgets ve Qt Quick olmak üzere 2 farklı yapıda uygulama geliştirebilmektedir.


Qt Quick yapısı, Qt içerisine sonradan dahil olan ve daha çok mobil (cep telefonu, tablet) uygulama geliştirmek için kullanılan ve içerisinde Javascript sözdizimine (syntax) benzeyen QML (Qt Modeling Language) dili kullanılan yapıdır. Qt Widgets, Qt içerisinde Qt Quick yapısından önce var olan ve daha çok Masaüstü uygulama geliştirmek için kullanılan C++ programlama dilini kullanan yapıdır. Qt Widgets daha çok masaüstü uygulamalar için kullanılsa da Qt Widgets ile geliştirmiş olduğunuz uygulamayı mobil platformlarda herhangi bir sıkıntı ile karşılaşmadan rahatça kullanabilirsiniz.


1 Aralık 2019 Pazar

Qt Raspberry Pi Kurulumu

Raspberry Pi Qt Kurulumu


Qt, birden çok platformu destekleyen (cross-platform) masaüstü, gömülü sistem ve mobil ortamlar için grafiksel kullanıcı arayüzü geliştirmemizi sağlayan bir araçtır.
Aslında Qt'yi sadece arayüz hazırlama programı olarak nitelendirmek Qt'ye yapılmış büyük haksızlıktır. Qt içerisinde çok gelişmiş C++ modülleri, sınıfları vardır. Qt ile kullanıcı arayüzü geliştirmek için C++ programlama dili kullanılmaktadır. Qt'nin bana göre en önemli avantajı birçok işletim sisteminde (Windows, Linux, Mac) kullanılabiliyor olmasıdır (cross-platform özelliği).
Qt'nin ticari ve açık kaynak (open source) olmak üzere 2 çeşit lisansı mevcuttur. Hobi amaçlı kullanım ücretsizdir.
Algoritma geliştirirken veya test ederken bir arayüz hazırlayarak onun üzerinde çalışmanın işleri kolaylaştırdığını, zaman kazandırdığını ve sonuçları daha iyi yorumlama fırsatı sunduğunu düşünüyorum. Ben genelde bu sebeple Qt'yi kullanıyorum. Ayrıca yazmış olduğunuz programların kullanıcıyla buluşmasını sağlamaktadır.
Bu yazımızda Raspberry Pi'de Raspbian işletim sisteminde Qt kurulumunu gerçekleştireceğiz. Aynı kurulumu Raspberry Pi'de yaygın olarak kullanılan Ubuntu Mate işletim sistemi için de gerçekleştirebilirsiniz. Kurulumu yaptıktan sonra hazırlamış olduğum Ücretsiz Qt Derslerini izleyerek Raspberry Pi'de Qt ile ihtiyacınız olan arayüzleri geliştirebilirsiniz.


1. Qt'yi Tanıyalım

Qt ile birlikte sıklıkla kullanılan Qt Creator ve Qt Designer araçları bu bölümde kısaca tanıtılacaktır.

1.1. Qt Creator Nedir ?

Qt Creator, Qt ile daha rahat ve daha kolay arayüz geliştirmenizi sağlayan Bütünleşik Geliştirme Ortamı (Integrated Development Environment, ide) olarak adlandırılır. Qt Creator ile içerisinde barındırdığı araçlar sayesinde proje oluşturmak ve burada saymakla bitiremeyeceğim bir çok ayarı yapmanız çok kolaydır. Qt Creator, içerisinde aynı zamanda Qt Designer'ı da içermektedir. Qt Designer ise sürükle-bırak tekniği ile arayüz tasarımı yapmanızı sağlayan tasarım aracıdır. Qt'de arayüz tasarımı için 2 seçenek vardır. Qt Designer aracında sürükle-bırak kolaylığı ile tasarım yapılabildiği gibi kod yazarak da tasarım yapılabilir.


Zaman içerisinde farklı logolar kullanılsa da genelde Qt Creator için aşağıdaki logo kullanılmaktadır.


1.2. Qt Designer Nedir ?

Qt Designer, tek başına da kurulup kullanılabildiği gibi Qt Creator içerisinde de kullanılabilmektedir. Eğer Qt Creator kullanıyorsanız Qt Creator içerisindeki Qt Designer işinizi görecektir. Ayrıca Qt Designer kurmanıza gerek yok. Genel olarak aşağıdaki ikon Qt Designer ikonu olarak kullanılmaktadır.


Qt Designer'da arayüz elemanları widget box olarak adlandırılan ekranın sol bölümünde yer almaktadır. Buradan seçilen arayüz elemanı aşağıda gösterildiği gibi sürükle-bırak tekniği ile arayüz tasarımına eklenmektedir. Daha detaylı bilgilere Ücretsiz Qt Derslerini izleyerek ulaşabilirsiniz.


2. Önkoşullar

Qt kurulumuna geçmeden önce aşağıdaki önkoşullar yerine getirilmelidir.

2.1. Yazılım Paketlerini Güncelleme

Raspbian, Raspberry Pi için optimize edilmiş Debian'a dayalı tamamen ücretsiz bir işletim sistemidir. Kurulumlar için apt-get komutundan yararlanacağız. Apt-get, Ubuntu gibi Debian temelli Linux dağıtımlarında, tanımlanmış kaynaklardan yeni yazılım paketlerini indirme ve bağımlılıkları ile birlikte kurma, paketleri yükseltme, paket liste içeriklerini güncelleme gibi işlemleri yerine getirmek için kullanılan bir komut satırı arayüzüdür.

Öncelikle yazılım deposundan (repository) güncel paket listelerini indirmek için aşağıdaki komut çalıştırılır.




sudo apt-get update




Listeleri güncelledikten sonra, paket yöneticisi işletim sisteminizde yüklü bulunan tüm yazılım paketleri için mevcut güncellemeleri bilir ve bu bilgiye dayanarak kurulu paketlerin daha yeni versiyonlarını yüklemek için aşağıdaki komut çalıştırılır.




sudo apt-get upgrade




2.2. Derleyici Kurulumu

Qt ile projeler geliştirebilmek için öncelikle işletim sisteminizde GCC, G++ derleyicisinin kurulmuş olması gerekir. GCC/G++ derleyicilerinin işletim sisteminizde kurulu olup olmadığını aşağıdaki komutları çalıştırarak kontrol edebilirsiniz.




gcc --version

g++ --version


Eğer yukarıdaki ekran görüntüsündeki gibi sonuçlar elde ettiyseniz sisteminize GCC/G++ derleyicisi kuruludur. Eğer kurulu değilse aşağıdaki ekran görüntüsüyle karşılaşırsınız.


GCC/G++ derleyici kurulumu için aşağıdaki komutu çalıştırarak sisteminize kurulumu gerçekleştirebilirsiniz.




sudo apt-get install gcc g++




İstediğiniz GCC versiyonu için aşağıdaki komutu çalıştırabilirsiniz. Yazının yazıldığı tarih itibariyle GCC-6 versiyonunun kurulmasını tavsiye ediyorum.




sudo apt-get install gcc-6 g++-6




Aşağıda bir takım paket adlarından ve nasıl kurulacaklarından bahsedeceğim. Kurulum yapmadan önce bu yazılım paketleri hakkında daha detaylı bilgi almak için aşağıdaki komut çalıştırılır.




sudo apt-cache show paket_adı




3. Qt Kurulumu

Yazılım deposunu, mevcut kurulu yazılım paketlerini güncelledikten ve derleyici kurulumunu gerçekleştirdikten sonra Qt kurulumuna geçebiliriz.
Öncelikle aşağıdaki komut çalıştırılarak qt5-default yazılım paketi kurulur. Bu paket Qt 5'i qmake gibi geliştirme dosyaları kullanırken öntanımlı (default) Qt versiyonu olarak ayarlar.




sudo apt-get install qt5-default




QMake kurulumunu test etmek için aşağıdaki komutu çalıştırabilirsiniz.




qmake -version





Eğer kurulum başarılıysa yukarıdaki ekran görüntüsünde yer alan sonuca benzer bir sonuç ile karşılaşmalısınız. Eğer sisteminizde qmake yoksa aşağıdaki ekran görüntüsündeki gibi bir sonuç alırsınız.


İkinci olarak Qt ile arayüz geliştirmemiz için ihtiyaç duyulan paketleri Qt Creator kurulumu ile birlikte kurmak için aşağıdaki kod çalıştırılır.




sudo apt-get install qtcreator




Bu kurulum ile birlikte Qt Designer, Qt Linguist, Qt Assistant yazılımları da otomatik olarak kurulmuştur. Gerçekleştirilen kurulumları aşağıdaki ekran görüntüsünde gösterildiği gibi Programming başlığı altında bulabilirsiniz.


Artık Qt Creator'u açıp yeni proje oluşturarak istediğiniz programı Qt ile geliştirebilirsiniz.

Önemli Not :

Qt kurulumu Raspbian işletim sisteminin September-2019 versiyonuna gerçekleştirilmiştir.


Detaylı açıklamalara ve kritik bilgilere aşağıdaki videoyu izleyerek ulaşabilirsiniz.


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.