Anadolu Üniversitesi Proje birimine sunduğum “Yaşam Boyu
Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Yaşam Günlüğü Sisteminin
Geliştirilmesi ve Uygulanması” isimli BAP önerisi kapsamında bir dizi yaşam
günlüğü yazılımı geliştirilmesi gerekmektedir.
Günümüzde bilgi çalışanlarının öğrenme deneyimleri ağırlıklı
olarak bilgisayar ortamında gerçekleşmektedir. Bilgisayar ortamı dışında
gerçekleşen öğrenme deneyimleri ise yüz yüze iletişim, basılı malzeme okuma, ders/seminer/konferans/video
vb. izleme, müze/sergi/doğa vb. gezme gibi etkinliklerden oluşmaktadır. Bireyin uyanık bulunduğu sürelerdeki öğrenme deneyimlerini
kaydetmek için bireyin kullandığı bilgisayarların ekran görüntülerinin
kaydedilmesi ve bireyin bilgisayar ortamı dışında etkinliklerine ait kamera görüntülerinin
kaydedilmesi yeterli olacaktır.
Burada amaçlanan deneyime ait içeriğin kaydedilmesi değil,
deneyimin daha sonra kolayca hatırlanmasını sağlayacak görüntülerin
kaydedilmesidir. Kayıt işlemi 30 saniyede bir alınan görüntülerden oluşacak ve bireyin
özel anları dışındaki süreleri kapsayacaktır.
Bu amaçla proje önerisini sunmuş olduğum 15 Aralık 2012 tarihinden
itibaren çalışmaya başladım ve LifeLoggingSC, LifeLoggingCC ve
LifeLoggingCCPhone isimlerinde üç yaşam günlüğü kaydetme yazılımı geliştirdim.
Yazılımlar bu aşamada taslak düzeyinde olsalar da kendilerinden beklenen belirli
zaman aralıklarında görüntü kaydetme işlevini yerine getirmektedirler.
LifeLogging Camera
Capture ve LifeLogging Camera Capture Phone yazılımları
Bireyin çevresindeki görüntülerin kaydedilmesi için giyilebilir
yaşam günlüğü kamerasının kullanılması gerekmektedir. Fakat proje önerisi
aşamasında temin edilebilir bir giyilebilir yaşam günlüğü kamerası bulunmamaktadır.
Microsoft SenseCam’in ticari sürümü olan Vicon Revue’nün yılsonu itibariyle satışı
durdurulacağı ilan edildi, yerine çıkacak olan Autographer cihazı ise henüz temin
edilebilir durumda değil. Aynı şekilde bir kickstarter projesi olan Memoto
cihazı ise Şubat ayından sonra satışa başlanacak. Deneyim kazanmak ve B planı
olarak kullanabilmek amacıyla projede kullanıcıların bir tablete takılı bir
webcam ile ya da bir akıllı telefona ait kamera ile çevrelerine ait görüntüleri
kaydetmeleri öngörüldü. Böylece Windows 8 tabletlerde çalışan LifeLogging Camera
Capture ve Windows Phone 8 akıllı telefonlarında çalışan LifeLogging Camera
Capture Phone isminde sürekli olarak belirli aralıklarda kamera görüntüsü kaydeden yazılımları
geliştirdim.
Kamera
görüntüsü yakalamayla ilgili yaklaşımları gözden geçirmek amacıyla, sahip
olduğum web cam Windows 8 altında çalışmadığından dolayı başlangıçta Windows 7
üzerinde değişik denemeler yaptım. Bu
denemelerde aşağıda verdiğim değişik görüntü yakalama teknolojilerine ait
örnekleri inceledim, bu örnekleri verilen zaman aralıklarında görüntü
kaydedecek şekilde tekrar programlamaya çalıştım:
- WIA Windows Image Acquisition
- AVICAP.DLL
- Directshow
- TWAIN
- Microsoft Expression Encoder
Bu
örneklerde en iyi sonucu http://www.codeproject.com/Articles/285964/WPF-Webcam-Control sitesindeki örnek üzerindeki denemelere aldım. Bu yaklaşımda Microsoft Expression Encoder’a
ait API’ler çağrılmakta ve bu amaçla hedef bilgisayarda Microsoft
Expression Encoder SP2 (21 Mb) kurulu
olması gerekmektedir.
Daha sonra Windows 8 için bir webcam temin ettim ve kamera
görüntüsü kaydeden bir Windows Store uygulaması geliştirmeye başladım. Sonuç
olarak verilen zaman aralığında kamera görüntüsünü kaydeden ve bu görüntüyü kullanıcıya
ait Pictures Library’ye zaman damgası şeklinde bir isimle kaydeden bir uygulama
ortaya çıktı (Resim 1.).
Geliştirme aşamasında CameraCaptureUI Sample’dan (http://code.msdn.microsoft.com/windowsapps/CameraCaptureUI-Sample-845a53ac/file/58120/9/CameraCaptureUI%20Sample.zip)
yararlandım, fakat bu örnekteki API işime yaramadığı için Windows.Media.Capture
API’si kullandım.
Bu uygulama çalıştırıldıktan sonra başka bir uygulamaya
geçildiğinde, arkaplanda da çalışmaya
devam etmektedir.
Resim 1. LifeLoggingCC uygulamasına ait bir görüntü.
Bir sonraki aşama Windows Phone 8 altında çalışacak bir
uygulama geliştirmekti. Windows Phone SDK 8.0’yı indirdim. Fakat telefon
emülatörünün çalışması için bilgisayarın donanımsal sanallaştırma olanağına
sahip olması gerektiği ortaya çıktı. Kullandığım iş istasyonları bu özelliğe
sahip olmadığından dolayı SDK’yı bir laptopa kurarak kullanmaya başladım. Dolayısıyla
Visual Studio laptopda biraz yavaş kaldı.
Windows Phone 8 geliştirme altyapısı Windows Store
uygulaması geliştirme altyapısından faklı olduğundan dolayı programın sıfırdan
yazılması gerekmekteydi. Yine de Windows store uygulaması altında yazdığım
CreatefileName() işlevi ile sürekli görüntü kaydetmeye başlama ile kaydetmeye
son verme yaklaşımlarını (dispatcher.timer) yeni programa fazla değiştirmeden
taşıyabildim. Burada BasicCamera Sample’dan (http://code.msdn.microsoft.com/wpapps/Basic-Camera-Sample-52dae359)
yararlandım ve öncekinden çok farklı olan Microsoft.Devices.PhotoCamera API’si
kullandım.
Resim 2. LifeLoggingCCPhone uygulamasına ait bir görüntü.
Visual Studio Phone Emulatörü bilgisayarın kamerasını
kullanamadığı için örnekteki telefonun ekranındaki görüntü emülatör tarafından üretilen yapay bir
görüntüdür. Fakat uygulama bu yapay görüntüyü klasöre kaydedebilmektedir. En
iyi sonucu Windows Phone 8 telefonlar geldikten sonra almaya başlayacağım.
Program çalışırken bilgisayar uyku moduna geçtiğinde görüntü
alınamamaktadır. Bu nedenle programın kullanılacağı tablette uyku modunun
iptali gerekmektedir. Windows Phone API’leri uygulama arkaplana aktarıldığında
fotoğraf çekilmesine izin vermediğinden dolayı uygulamanın sürekli ön planda
çalışması gerekmektedir.
LifeLogging Screen
Capture yazılımı
Projede
bireylerin gün boyunca kullandıkları masaüstü, laptop ve tablet
bilgisayarlarının ekran görüntülerinin kaydedilmesi amaçlanmaktadır. Projede ortak
bir teknolojik zemin oluşturabilmek amacıyla kullanıcıya ait bütün bilgisayarların, laptopların
ve tabletlerin Windows 8 işletim sistemi altında çalışması öngörülmüştür.
Dolayısıyla geliştirilecek olan yazılımın da Windows 8 altında çalışması
öngörülmektedir.
Windows
8 geliştirici forumlarını taradığımda Windows 8 altında güvenlik gerekçeleri
nedeniyle her türlü ekran yakalama işleminin engellendiğinden bahsedildiğini
gördüm. Gerçekten bu amaçla kullanılabilecek bir API bulunmamaktaydı. Forumlarda
masaüstü uygulaması şeklinde yazılan ekran yakalama yazılımlarının da Başlat
menüsüne geçildikten ve bir Windows Store uygulaması çalıştırıldıktan sonra
görüntü almamaya başladıkları ifade edilmekteydi.
Bir kaç deneme sonunda uygulamayı Windows masaüstü programı
biçiminde ve Microsoft Expression Encoder API’si kullanarak yazmaya karar
verdim ve program çalıştı. Gerçekten de program masaüstünde çalıştırıldıktan sonra
ekranı kaydetmeye başlıyor ve ardından başlat menüsüne geçildikten ve Windows
Store uygulamaları çalıştırılmaya başlandıktan sonra da ekran görüntüsü
kaydetmeye devam ediyor. Bu Microsoft’un farketmediği bir açık ise ve bu açığı
gelecekte kapatmaya karar verirse bu yaklaşımın gelecekte kullanılması mümkün
olmayacaktır.
Uygulama arkaplanda iken çalışmaya devam etmektedir. Fakat bilgisayar
uyku moduna geçtiğinde program son çektiği resmi kaydetmeye başlamaktadır.
Programın kullanılacağı bilgisayarda uyku modunun iptal edilmesi gerekmektedir.
Projede öğrenme deneyimlerine ait içerik kaydı yapılmaması,
sadece hatırlatıcı ekran görüntülerinin kaydedilmesi öngörülmesine rağmen ekran
görüntülerinin isteğe bağlı olarak video biçiminde kaydedilmesi olanağı da
eklenmiştir.
Resim 3. LifeLoggingSC uygulamasına ait bir görüntü.
Sonraki aşamalar
Windows 8 Phone ile bir uygulamanın kendisine ait ekran
görüntülerinin kaydedilmesine olanak sağlanmaktadır. Fakat bu olanağın uygulama
arkaplanda çalışırken diğer uygulamalara ait ekran görüntüleri kaydedebileceğini
sanmıyorum.
Yukarıda bahsedilen uygulamalara çekim aralığı, görüntü
kalitesi ve dosya kaydetme klasörlerinin değiştirilebileceği bir “Ayarlar”
özelliği eklenecektir. Diğer taraftan uygulamalara GPS vb. sensör verilerini
yakalama ve görüntülerle birlikte bu sensör verilerini de kaydetme olanağı da
eklenecektir.
Değişik bilgisayarlar ve telefonlarda elde edilen
görüntülerin kullanılması/değerlendirilmesi amacıyla bir merkezde toplanması
gerekmektedir. Bu amaçla manuel ya da bulut altyapısı kullanan değişik
tasarımlara ait taslakları geliştirmeye başladım. Geliştirdiğim çözümlere izleyen
yayınlarda yer vereceğim.
Hiç yorum yok:
Yorum Gönder