‘microsoft’ etiketli içerik
Giyim mağazalarında çoğu zaman bir ürünü almadan önce denemek isteriz, peki ya denemek mümkün değilse? Seçeneklerin artması ile denemenin daha zahmetli hale gelmesi bir yana online alışveriş gibi durumlarda denemek hiç mümkün olmayabilir. Bu yazıda geçenlerde geliştirdiğim bir uygulama olan sanal giyinme odasından bahsedeceğim. Uygulamada kullanıcı sanal bir ortamda giysi seçebilmekte ve seçtiği giysileri üzerinde deneyebilmektedir.
Uygulamayı geliştirirken bir görüntü ve derinlik sensörü olan Microsoft Kinect’i ve Microsoft Research tarafından geliştirilen yazılım geliştirme kitini (Kinect SDK) kullandım, uygulamanın çalışma mantığını genel olarak aşağıdaki gibi özetleyebilirim:
- Derinlik ve kullanıcı etiketi verisinden faydalanılarak kullanıcının canlı video akışından çıkarılması (arkaplan silme),
- İstenmeyen örtüşmelerin engellenmesi için ten rengi algılama,
- Giysi modelinin konum ve rotasyonunun eklem noktalarının koordinatlarına göre hizalanması,
- Giysinin eklemler arası uzaklık ve kameradan uzaklık verisinin kullanılarak ölçeklenmesi,
- Modelin kullanıcının üzerinde gösterilmesi.
Ön işlemler: arkaplan silme ve ten rengi algılama
Arkaplan silme bu uygulamada iki açıdan kolaylık sağlamaktadır. Birincisi kullanıcıyı çıkartarak ileriki işlemler için ilgili olan alanı (ROI) belirlememizi sağlamaktadır. Bu sayede ten rengi algılama aşamasında arkaplandaki ten rengine benzer alanların da ten rengi olarak algılanması problemi çözülmüş olmaktadır. İkincisi ise arkaplanı sildiğimizde herhangi istediğimiz bir arkaplanla değiştirerek sanal bir ortam oluşturabiliriz. KinectSDK’nın sağlamış olduğu derinlik ve kullanıcı etiketi verisini kullanarak basit bir maskeleme ile bu işlemi kolayca gerçekleştirebiliriz.

Giysi modeli görüntünün üstüne eklendiğinden kullanıcının hareketi modelin arkasında kısıtlı kalmaktadır. Bu bağlamda ten rengi algılamada istenmeyen örtüşmelerin engellenmesi amaçlanmıştır. Uygulamada ten rengine sahip alanlar en üst katmana taşınarak model ile örtüşmeleri engellenmektedir. Bu konuda yapılabilecek daha akıllıca bir çözüm derinlik verisinden faydalanarak giysi modeli ile kullanıcının derinlik sıralamasını ayarlamak olabilir. Burada böyle bir yaklaşımı benimsememin tek nedeni daha kolay olmasıydı. Kameradan gelen RGB görüntü YCbCr renk uzayına dönüştürülüp her renk kanalı için basit bir eşikleme uygulanması ten rengi algılamada en basit çözüm olarak kolayca gerçeklenebilir.
Hizalama ve ölçekleme
Kinect SDK ile sağlanan iskeletsel takipçi (skeletal tracker) vücut eklemlerinin 3 boyutlu koordinatlarını yaklaşık olarak vermektedir. Eklemlerin ekrandaki piksel konumları ve birbirleri ile yaptıkları açılardan faydalanılarak giysi modelinin konumlandırılması ve döndürülmesi sağlanmıştır. Omuzlar arası uzaklık, boy uzunluğu ve kullanıcının kameradan uzaklığı değerlendirilerek giysi modeli ölçeklenmiştir.
Daha neler yapılabilir?
Başarım kriterini kullanıcının giysi modeli ile örtüşme oranı olarak belirleyerek uygulamayı farklı koşullar altında test ettiğimizde %83 ortalama başarı oranı elde ettik. İlerleyen aşamalarda 3 boyutlu giysi modelleri ve fizik motoru kullanılarak daha gerçekçi sonuçlar elde edilebilir. Alternatif olarak giysilerin farklı açılardan çekilmiş fotoğrafları kullanılarak sahte 3d izlenimi oluşturulabilir. Örtüşmelerin işlenmesinde daha önce de bahsettiğim gibi renk özellikleri yerine derinlik verisinden faydalanılabilir.
Gelen geribildirimler üzerine şunu da belirtmek istiyorum evet daha önce yapılmış benzer uygulamalar var, zaten bu fikri ilk benim bulduğum gibi bir iddiada bulunmuyorum. Benimkisi ticari olmayan yalnızca deneysel amaçlı bir çalışma.
Daha detaylı bilgi için:
A more detailed report (in English): [ A Real Time Virtual Dressing Room Application using Kinect ]

Bu sene Microsoft İstanbul ofisinde gerçekleştirilen 2. Bilgisayar Bilimleri Öğrenci Çalıştayında (2nd Computer Science Student Workshop) “Automatic Recognition of Turkish Fingerspelling” başlıklı poster sunumum ile en iyi poster sunumu ödülünü aldım.
Bütün katılımcılara teşekkür ederim.
2010 Yaz döneminin de sonuna geldik, çok fazla tatil yaptığımı söyleyemem ama en azından dolu bir yaz dönemi geçirdim diyebilirim. Bu yaz, ikisi yazılım biri donanım stajı olmak üzere üç staj tamamladım. Stajlarımın arasında tatil için iki hafta da olsa vakit ayırabildim. Bunun dışında staj sırasında en az tatil kadar zevk aldığım günler de oldu diyebilirim. Stajlarım hakkındaki yorumlarımı burada da paylaşmak istedim.
Nortel Netaş, Yazılım Stajı
Staj başlangıcında stajyerlere çalışma alanı ve bilgisayar tahsis ediliyor. Çalışılan bölüme göre stajyerlere küçük projeler veriliyor. Ben Teknoloji Geliştirme bölümünde Ağ Geçidi Denetleyicisi için yama geliştiren bir çalışma ekibinde stajyer olarak görev aldım. Staj dönemim genel olarak bu ekipte iş takibini kolaylaştıran, çeşitli raporlama fonksiyonlarına sahip bir yazılım geliştirmekle geçti. Bununla birlikte staj programı dâhilinde stajyerlere iletişim teknolojileri konulu seminerlere katılma imkânı sağlanıyor. Nortel Netaş genel olarak genç bir çalışan profiline sahip, kıyafet zorunluluğu da neredeyse yok diyebilirim. Kurumun Ümraniye’de yer alan yerleşkesi bir fabrikadan çok bir üniversite kampüsünü anımsatıyor. Ve en çok merak edilen soru: Maaş veriyorlar mı? Hayır, stajyerlere maaş verilmiyor ancak ücretsiz şehir içi servis ve öğlen yemeği imkânı sağlanıyor.
Microsoft Türkiye, Yaz Okulu Programı
Yaz okulu programı genel olarak uygulamalı eğitimler ve staj projesinden oluşuyor. Verimli geçen eğitimlerin yanı sıra arkadaşlarla düzenlediğimiz staj dışı etkinliklerin de bu sürece renk kattığını düşünüyorum. Staj bitiminde proje arkadaşlarımla birlikte, semptomlardan çıkarımda bulunarak hastalık teşhisinde yardımcı olarak kullanılabilecek bir uygulama geliştirdik. Yaz Okulu Programı hakkında daha önce yazdığım yorumlara aşağıdaki bağlantıdan ulaşabilirsiniz.
http://www.isikdogan.com/2010/08/microsoft-yaz-okulu-2010-istanbul/
Netech It Solutions, Network Stajı
Yazılım ağırlıklı stajlarımdan sonra donanım ağırlıklı bir staj yapmam güzel oldu diyebilirim. Ancak ağ teknolojileri hakkında daha fazla deneyim edinebilmeyi umuyordum açıkçası. Bununla birlikte veri haberleşmesi gibi derslerde gösterilen bazı teorik bilgilerin ve derslerde gösterilme fırsatı bulunmayan bazı teknik konuların pratik uygulamalarını inceleme fırsatı buldum.
Sonuç olarak her ne kadar stajlarım güzel geçmiş olsa da iş hayatını akademik hayat kadar zevkli bulmadım. Akademik kariyere devam edip bilim insanı adayı olmak daha cazip geliyor.
Merhabalar, bu yıl benim de katılımcı olarak yer aldığım Microsoft Yaz Okulu programının ardından yorumlarımı paylaşmak istedim. Programdan önce benim de merak ettiğim, sıkça sorulan sorular hakkında kendi fikirlerimi belirtmek istiyorum.

Microsoft Yaz Okulu bir staj programı mıdır?
Hem evet, hem hayır diyebilirim. Uygulamalı eğitimler ve staj projesinden oluşan Microsoft Yaz Okulu programı bir stajda edinilebilecek deneyimden fazlasının elde edilebileceği bir yerdir ve çoğu üniversitede staj olarak sayılmaktadır.
Katılım ücretli mi, kabul edilmek zor mu?
Katılım ücretsiz. Bunun dışında öğlen yemekleri de oldukça güzel ve ücretsiz. Çay, kahve, ice tea, kola gibi içecekler de ücretsiz. Ayrıca usb bellek, cd çantası ve çok sayıda kitap gibi hediyeler de bulunmakta. Kabul edilme oranı ise bu sene %5 civarı.
Microsoft Yaz Okulu kimlere hitap ediyor?
Katılımcılar genel olarak bilgisayar mühendisliği öğrencilerinden oluşmakta. Bunun dışında diğer bölümlerden katılımcılar da var. Eğitimler genelde giriş seviyesinde oluyor ancak konular hızlandırılmış olarak işlendiğinden biraz ön bilgisi olan katılımcılar için daha faydalı bir program diyebilirim.
Microsoft Yaz Okulunun katılımcılara ne gibi katkıları oluyor?
Microsoft Yaz Okulu, teknik anlamda gelişme fırsatı sağlamanın yanı sıra sosyal gelişime de katkıda bulunan bir program diyebilirim. Farklı üniversitelerden katılımcıların bulunduğu bu program güzel arkadaşlıkların kurulabileceği bir çalışma ortamı sağlıyor. Değerli kazanımların elde edildiği programda, Microsoft’un Most Valuable Professional ünvanını verdiği, alanında uzman kişiler ile tanışma imkanı elde ediliyor. Microsoft Yaz Okulu genel olarak öğrenciler için verimli ve keyifli bir staj dönemi olarak geçiyor ve program sonunda öğrencilere Yaz Okulu Katılım Belgesi veriliyor.





