Darknet Framework Konfigürasyon Aşamaları

meyraaslihan
Oct 22, 2020 · 7 min read
Image for post
Image for post

Projenizin kurulum aşamasında ilk olarak Darknet framework’ünün hangi işletim sistemi ile daha verimli ve düzgün çalışılacağını tespit etmeniz gerekir. Projeler de çok yönlülüğü, gücü, güvenliği ve testlerdeki hızı nedeniyle ben Linux platformu üzerinden devam etme kararı aldım. Linux platformunda yaptığım darknet framework konfigürasyonundan sizlere bahsetmek istiyorum.

Ubuntu için İzlenecek Adımlar;

  1. Github reposu bilgisayarınıza indirmelisiniz.
Image for post
Image for post
Github’dan Darknet Framework’ü klonlama

Github üzerinden üst satırda görüldüğü gibi Darknet deposu git ile klonlanır ve cd ile darknet klasörü içerisine girilir.

2. Ubuntu ile OpenCV Kurulumu

Eğer bilgisayarız üzerinde CUDA destekli Nvidia ekran kartı yer alıyorsa ve aynı zamanda Darknet GPU üzerinde çalıştırılacak iseniz Makefile dosyasında ilk satırdaki GPU değerini 1 olarak değiştirilmelisiniz. Darknet’in GPU üzerinde çalıştırılmasının sebebi yüksek FPS değeri almayı amaçlaması ve beraberinde daha hızlı çalışma imkanına olanak sağlayacak olmasıdır.

GPU=1

Darknet’i GPU ile derlenmesi gerekiyorsa bilgisayarda CUDA’ nın en az 8. versiyonu kurulu olması gerekir.

i. İlk olarak gerekli olan paketleri yükleyelim.

Image for post
Image for post
Gerekli paketlerin kurulumu

ii. İkinci aşamada ise zorunlu olan paketleri yükleyelim.

Image for post
Image for post
Zorunlu paketlerin kurulumu

iii. Son aşamada ise opsiyonel paketleri yükleyelim.

Image for post
Image for post
Opsiyonel paketlerin kurulumu

3. OpenCV Kaynak Kodlarının İndirilmesi:

i. Kaynakları down klasörürün altına indirelim sonra da OpenCV github deposunda yer alan en güncel stabil versiyonu git ile bilgisayara indirelim.

Image for post
Image for post
Github’dan OpenCV kütüphanesini klonlama

ii. Eğer OpenCV ekstra paketlerine ihtiyacınız var ise aynı şekilde git ile indirelim.

Image for post
Image for post
OpenCV ek paketlerin kurulumu

iii. OpenCV’ yi derlemeden önce indirdiğimiz opencv klasörü altına geçici olarak “release” adında bir klasör oluşturalım.

Image for post
Image for post
Gerekli klasörlerin oluşturulması

iv. Derleme işleminden önce OpenCV’ yi nasıl yapılandıracağımızı belirleyelim.

Image for post
Image for post
OpenCV derleme öncesi yapılandırmalar

Son olarak kurulumda yer alan -j8 parametresi opsiyoneldir. Sadece make komutunun çalışması çok uzun sürüyor ve paralel olarak birçok çekirdek ile çalıştırmak istiyorsak çekirdek sayısına göre ekleyelim.

Image for post
Image for post
OpenCV derleme işlemi

Bu işlemler sonucunda OpenCV kaynak kodlarının indirilmesini başarıyla tamamlıyoruz.

4. NVIDIA Ekran Kartı Kurulumu

Ubuntu kurulumunda ekran kartları için olan gerekli açık kaynak sürücüler beraberinde gelir ve kullanımda olurlar. Fakat bu açık kaynak sürücüler resmi olmayan sürümleridir ve ekran kartı firmaları tarafından paylaşılmamaktadır. Tamamen tersine mühendislik kullanılarak açık kaynak yazılım dünyasına gönül vermiş kişiler tarafından oluşturulmaktadır. Bu sürücüler 3 boyutlu oyun, 3 boyutlu yazılımların çalışabilmesi ve aynı zamanda bilgisayardaki ekran kartından GPU anlamında verimli bir şekilde yararlanabilmek için yeterli değildirler. Bu nedenle ekran kartının tüm özelliklerinden yararlanabilmek için ekran kartı firmasının kendi sitesinde paylaştığı kapalı kaynak kodları kodlu resmi dağıtımları yani sahipli yazılımları kullanılması gerekmektedir. Bunun için internetten herhangi bir sürüm veya yazılım aramanıza gerek yoktur. Aşağıdaki adımlar ile resmi ekran kartı sürücülerini temin edebiliriz.

Uyarı: Ekran kartı sürücülerinde değişiklik yapılması masaüstünün açılmamasına sebebiyet verebilir eğer resmi kapalı kaynak yani sahipli bir ekran kartı yazılımını yükledikten sonra masaüstünüze gelmez ise kapalı kaynaktan açık kaynak ekran kartı sürücüsüne geri dönüş yapılması gerekir.

Aşağıda yer alan anlatım bizim bilgisayarlarımızda NVIDIA ekran kartları olması sebebiyle bu yönde ilerlememize sebep olacaktır.

NVIDIA resmi sürücülerini kapalı kaynak olarak yayınlamaktadır. Fakat standart bir Ubuntu kurulumunda dahili olarak gelen açık kaynak resmi olmayan “Nouveau” isimli bir açık kaynak sürücü paketi yer almaktadır. Ancak bu çoğu zaman ekran kartından yeterli verimi almamızı sağlamaz bu sebeple tam performanslı çalışabilmesi için ekran kartı üreticisinin önerdiği ve yayınladığı kapalı kaynak kodlu sürücü paketlerini kullanırız.

Image for post
Image for post
Cihazda yer alan ekran kartları bilgisi

Ubuntu üzerinde komutunu kullanarak cihazın ekran kartı sorgulamasını gerçekleştirebiliriz, cihazımızda dahili olarak Intel ve harici olarak NVIDIA ekran kartları bulunmaktadır.

Intel ekran kartını kullanabilmek veya tam verim alabilmek için herhangi bir işlem yapmamıza gerek yoktur. Bunun sebebi zaten Intel, ekran kartı sürücülerini Ubuntu ve diğer dağıtımlar ile paylaşmaktadır.

Cihazda yer alan ekran kartları bilgisi komutunu yazdığımızda gördüğünüz üzere iki ekran kartı yer almaktadır. Eğer sizde de durum bu şekilde ise cihazınızda çift ekran kartı yer almakta ve bilgisayarınızda “Nvidia Optimus” özelliği bulunmaktadır.

Nvidia Optimus, özelliği bilgisayarımızda biri dahili Intel, diğeri harici NVIDIA olmak üzere iki ekran kartı bulunduğu anlamına gelir. Bilgisayarımızda yaptığımız işlemler sırasında yüksek performansa ihtiyaç duyulmuyorsa Intel ekran kartı kullanırız, eğer 3 boyutlu oyun veya yüksek performans gerektiren işler yapılıyorsa Nvidia ekran kartı kullanılır. Çift ekran kartı kullanmamızın temel amacı pil ömründen tasarruf sağlamamızdır.

Nvidia Optimus, normalde Windows’ta kullanıcının müdahalesi olmadan Nvidia ve Intel kartları arasında ihtiyaca göre otomatik geçiş yapmamızı sağlar. Ancak Nvidia, Linux’ta Optimus işlevini tam olarak desteklemediği için kartlar arasındaki geçişi manuel olarak yapmamız gerekir.

Cihazdaki harici ekran kartı olan NVIDIA GeForce 940MX için gerekli kapalı kaynak sürücüleri kurulumuna geçelim.

Image for post
Image for post
Ek Sürücüler Arayüzü

Bunun için Ubuntu da yer alan “Yazılım ve Güncellemeler” aracını çalıştırıyoruz ve “Ek Sürücüler” sekmesini geçiş yapıyoruz. Sonrasında alternatif sürücü paketlerinin listelenmesi için birkaç saniye bekleyelim. Burada ekran kartı versiyon numarasına uygun sürücü seçeneğini işaretleyip “Değişiklikleri Uygula” seçeneğine tıklıyoruz, ardından bilgisayarınızı yeniden başlatalım.

Ek sürücüler sekmesindeki açılan pencere içinde “nouveau” kelimesinin geçtiği satırdaki sürücü, açık kaynak sürücü anlamına gelir yani sistemin ilk kurulumu ile birlikte ön tanımlı gelen, kullanımda olan sürücüdür. Satırlarda “sahipli” kelimesinin geçtiği sürücüler ise ekran kartı firmaları tarafından paylaşılan resmi sürücü paketleridir. Resmi sürücü paketleri adında yazılı olan versiyon numarası aralıklarını inceleyelim, kartımızın versiyon numarasına uygun aralıktaki sürücü paketini seçmemiz gerekiyor. “legacy” kelimesinin geçtiği satır ise genel olarak Nvidia’nın çok eski ekran kartlarına uygun sürücüleri anlamına gelir.

Bilgisayarınızda çift kart olarak Intel ve Nvidia var ise Intel kartı için herhangi bir şey yapmanıza gerek yoktur, çünkü resmi Intel sürücüleri Ubuntu kurulumu ile birlikte yüklü gelir.

Sahipli Nvidia sürücüsünü işaretleyip bilgisayarınızı yeniden başlattıktan sonra Nvidia ekran kartının kurulumu gerçekleşecektir. Ubuntu etkinliklerdeNvidia Settings” aracını aratıp çalıştıralım. Bu araç Nvidia tarafından sunulan bir yazılımdır ve sahipli Nvidia ekran kartı sürücünün kurulumu sırasında onunla birlikte otomatik olarak kurulur.

Image for post
Image for post
Nvidia Setting arayüzü

Nvidia Settings aracında “PRIME Profiles” bölümünü kullanarak istediğimiz zaman Intel ile Nvidia kartları arasında geçiş yapılabiliriz. Ancak yaptığımız değişikliğin uygulanabilmesi için kullanıcı oturumunuzu kapatıp yeniden giriş yapmamız gerekmektedir.

5. CUDA (Cuda Toolkit) Kurulumu

Cuda Toolkit Kurulumu

Yukarıda gördüğünüz üzere güncel CUDA sürümünü download buttonuna tıklayarak indirebilirsiniz. Aynı zamanda CUDA Toolkit 10.0 kurulumu gerçekleştireceğimiz için “Legacy Releases” kısmından yani CUDA 10.0 sayfasına giriyoruz. Buradan aşağıdaki seçimleri gerçekleştirip cuda kurulum dosyasını indiriyoruz.

[ cuda_10.0.130_410.48_linux.run ve cuda_10.0.130.1_linux.run (Patch 1)]

Seçmemiz Gerekenler:

Operating System: Linux54, Architecture: x86_64, Distribution: Ubuntu, Version: 18.04, Installer Type: runfile(local)

Image for post
Image for post
Cuda Toolkit 10.0 Archive

Şimdi ise CUDA kurulumuna geçelim. Terminalde iken:

Image for post
Image for post
Terminal ekranından CUDA kurulumu

Yukarıda yer alan komutu yazdıktan sonra kurulumu tamamlarız ve devamında CUDA dizinini /home dizini altındaki sistem dosyasına ekleyelim.

Image for post
Image for post
.bashrc dosyasının düzenlenmesi

.basharc dosyası açtıktan sonra aşağıdaki satırlar ekleyelim.

export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}

export

LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Image for post
Image for post
.bashrc dosyasının işletilmesi

İşlem tamamlandıktan sonra CUDA kurulumunu aşağıdaki komut ile kontrol edelim.

Image for post
Image for post
CUDA kurulum kontrolü

6. cuDNN (CUDA Deep Neural Network Library) Kurulumu

NVidia Cuda Toolkit kurulumunu tamamlandıktan sonra NVidia cuDNN için ;

Image for post
Image for post

buradan Login/Join olunmalıdır. Sonrasında;

Image for post
Image for post
cuDNN Download

Yukarıda yer alan sözleşmeyi kabul ederek güncel cuDNN versiyonlarını listelenir. cuDNN v7.6.0 versiyonu için OS tipini, mimarisi ve versiyonunu seçerek kurulumu dosyası indirelim.

Image for post
Image for post
cuDNN Download

Bu sayfa üzerinden Download cuDNN v7.6.1 (June 24, 2019), for CUDA 10.0 altında yer alan “cuDNN Library for Linux” tıklayalım, sonrasında cuDNN 7.6.1 versiyonunu indirelim. [ cudnn-10.0-linux-x64-v7.6.2.24.tgz ] sıkıştırılmış arşiv dosyasını aşağıda yer aldığı gibi açalım.

Image for post
Image for post
cuDNN sıkıştırılmış dosyasının çıkartılması

Ardından aynı dizinde iken:

Image for post
Image for post
Cihazda yapılan gerekli kopyalama ve yetkilendirme işlemleri

Yukarıda yer alan komutları çalıştırarak cuDNN kurulumunu tamamlamış olduk.

Kurulum aşamalarının son kısmı olan darknet framework kısmını daha ayrıntılı bir şekilde diğer bir yazımda bahsetmek istiyorum. Böylelikle bu yazıyla birlikte Linux platformu üzerinden yapmış olduğum darknet framework konfigürasyon aşamalarını görmüş olduk.

Kodcular

Bu yayın yazılım üzerine üretilen blogların bir araya…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store