Kinect için Geliştirme Ortamının Hazırlanması

   Her ne kadar önceki makalemde değinmişte olsam, ayrı bir makale içerisinde geliştirme ortamının Kinect uygulamaları için hazırlanmasına değinmek sanırım faydalı olacaktır.

   Öncelikle, Kinect için yazılım geliştirebilmek adına bilgisayarınızın sahip olması gereken bir grup minimum gereksinim bulunmakta. Bu gereksinimler;

  • Windows 7 (x86 veya x64)
  • Çift çekirdek 2.66 GHz veya üzeri işlemci
  • Windows 7 uyumlu ve DirectX 9.0c destekli bir ekran kartı
  • 2 GB veya üzeri hafıza
  • Visual Studio 2010 Express veya üzeri sürümleri
  • ve tabi ki USB/güç kaynağı adaptörü bulunan bir Kinect sensor

Konuşma özelliklerini kullanabilmek için;

   Geliştirme ortamınız x64 olsa bile, Kinect ile uygulama geliştirebilmeniz için yukarıdaki konuşma bileşenlerinin x86 sürümlerini indirip kuruyor olmanız gerekli.

Kinect SDK ile birlikte gelen DirectX örneklerinin çalıştırılabilmesi için;

   Tabi ki bilgisayarınızda Kinect for Windows SDK’nın da kurulu olması da gerekecektir. Kinect SDK beta kurulmadan önce bilgisayarınızda alt sürümlerine/3.partiye ait sürücüler var ise kaldırılması gerekecektir. Kuruluma başlamadan önce Kinect cihazınızın bilgisayarınıza bağlı olmadığına emin olun.

   Kinect sürücüleri kurulum sırasında MSRKINECTSDK ortam değişkenini tanımlayarak gerekli dosyaların bu sayede bulunabilmesine olanak vermektedir, tüm örnekler bu sabit değişken kullanılarak tanımlanmıştır. Bu değişken tanımlanmadan önce açılmış olan bir Visual Studio, açılan Kinect örnek projelerinde yer alan MSRKINECTSDK  değişkeninin değeri bilemeyeceğinden referansların bulunmasında sıkıntı yaratacaktır. Bu sebeple Kinect SDK’sının kurulumu öncesinde Visual Studio’nun kapatılması önemlidir.

   Kinect SDK’nın kurulumu sonrası Kinect cihazınızı harici güç kaynağına, ardından da bilgisayarınızın USB girişine bağladığınızda Windows otomatik olarak gerekli olan sürücüleri yükleyecektir. Kinect cihazının harici bir güç kaynağına bağlı olmaması durumunda sensorları minimum düzeyde çalışacak ve ön panelinde yer alan LED kırmızı yanacaktır.

   Yukarıdaki kurulumlar ve Kinect cihazınızın bilgisayarınızın USB portuna bağlanması sonrasında artık yazılım geliştirmeye hazırsınız. Şimdi isterseniz Visual Studio 2010 üzerinde adım adım Kinect için basit bir WPF uygulaması oluşturalım.

   Visual Studio 2010’u açtıktan sonra New Project linkine basarak yeni proje diyaloğuna geliyoruz. Bu diyalogda WPF Application ve .Net framework sürümü olarak da 4’ü seçiyoruz;

Yeni pencere diyaloğu

   Örnek uygulamamız için proje adı olarak MerhabaKinect’i seçtim; fakat siz farklı bir isim de verebilirsiniz. Bu diyaloga ok dedikten sonra varsayılan şablon ve referansları ile bir WPF uygulaması açılacaktır.

   Her ne kadar Kinect SDK’sının hem x86 hem de x64 sürümleri bulunsa da, geliştirilen uygulamaların her iki platformda da çalışabiliyor olması için x86 olarak derlenmiş olması önemlidir. Bu sebeple, projenin açılması sonrasında Solution Explorer penceresinden projeyi seçerek sağ tıklıyoruz, gelen menüden Properties seçilerek proje özellikleri ekranına geliyoruz;

Proje özelliklerini görebilmek için properties seçeneği kullanılabilir

  Açılan proje ayarları penceresinde Build segmesine gelerek Platform Target özelliğini x86 olarak ayarlıyoruz;

Proje özellikleri ekranından projenin x86 olarak derlenmesi sağlanabilir

Bu işlemler ardından artır projemize Kinect kütüphane referanslarını eklemeye hazırız. Solution Explorer penceresinde References’a gelip sağ tıklıyoruz, gelen menüden Add Reference seçilerek referans ekleme diyalogunu açıyoruz;

Dll referansı eklemek için Add Reference menü girdisi kullanılabilir  Benim bilgisayarımda Productivity Power Tools kurulu olması nedeniyle referans ekleme diyalogu sizinkinden farklı olarak aşağıdaki şekilde gelecektir. Referans ekleme işlemlerini oldukça kolaylaştıran bu diyalogda sağ üst bölümde yer alan arama alanına kinect yazarak, içerisinde kinect geçen tüm referansları filtreleyebiliyorum. Filtrelenmiş listeden Microsoft.Research.Kinect’i geçerek Add butonu vasıtasıyla proje referanslarına ekliyoruz;

Referans ekleme diyaloğundan Microsoft.Research.Kinect dll seçilmelidir

   Projemizi x86 olarak derlenecek şekilde ayarladıktan ve Kinect SDK referansını verdikten sonra artık kodlama aşamasına geçilebilir. Bu aşamada; eğer geliştireceğimiz uygulama NUI API’sini kullanacaksa aşağıdaki şekilde Microsoft.Research.Kinect.Nui isim uzayını kullanacağımızı belirtmeliyiz;

using Microsoft.Research.Kinect.Nui

   Benzer şekilde Audio API’si kullanılacaksa Microsoft.Research.Kinect.Audio isim uzayını kullanacağımızı belirtmeliyiz;

using Microsoft.Research.Kinect.Audio

   Eğer bir Kinect uygulamasında NUI API’si kullanılacaksa, öncelikli olarak Kinect çalışma zamanı ilklendirilmeli. Uygulamanın sonlanması ya da Kinect kullanımının bitmesi durumunda da Kinect çalışma zamanı sonlandırılmalıdır. Bu işlemler için Runtime sınıfı içerisinde yer alan Intialize ve Uninitialize fonksiyonları kullanılabilir. Her ne kadar bir zorunluluk olmasa da genel kabul görmüş bir yöntem olarak, Kinect çalışma zamanı ana ekranın yüklenmesi sırasında ilklendirilmekte, kapatılması sırasında ise sonlandırılmaktadır.

   Ana Ekranın yüklenmesi Window sınıfının Loaded olayı dinlenerek yakalanabilir. Bu olay bildirimini dinleyebilmek için Ana ekranımız seçili iken Properties penceresine gelerek Events segmesini açmalıyız. Gelen listeden Loaded olayını bularak çift tıkladığımızda gerekli  kod otomatik olarak Visual Studio tarafından oluşturulacaktır;

Pencerenin Loaded olayını dinlemek için Events segmesinde Loaded'a çift tıklanabilir

Kodumuza otomatik olarak eklenen Window_Loaded fonksiyonu

   Yukarıdaki ekran görüntüsünde görüldüğü gibi Kinect çalışma zamanı için sınıf içerisinde nui adıyla bir değişken oluşturulmuş ve sınıfın constructer’ında bu değişken ilklendirilmiştir. Bu sayede kodumuzun devamında Kinect çalışma zamanını rahatlıkla kullanabiliriz.

   Windows_Loaded fonksiyonu içerisinde Initialize fonksiyonu yardımıyla ilklendireceğimiz Kinect çalışma zamanına öncelikle hangi özelliklerini kullanacağımızı belirlemeliyiz. Bunu sebebi Kinect çalışma zamanının başlatılırken bizden bu bilgileri RuntimeOptions enum’u yardımıyla bekliyor olmasıdır. Örneğin; sadece RGB kamera kullanılarak ise, çalışma zamanı aşağıdaki şekilde ilklendirilmelidir;

nui.Initialize(RuntimeOptions.UseColor);

   RuntimeOptions enum’unun flag olarak tanımlanmış olması sayesinde çeşitli kombinasyonlarla birden çok özelliğini ilklendirebiliriz. Örneğin derinlik ve iskelet takibi için aşağıdaki şekilde bir iklendirme yapılabilir;

nui.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking );

   Son olarak; Pencerenin kapanması sırasında tetiklenen Closed olayını dinleyerek pencere kapandığında aşağıdaki şekilde Kinect çalışma zamanını sonlandırmamız mümkündür;

nui.Uninitialize();

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir