screen capture etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
screen capture etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

30 Nisan 2017 Pazar

Designing an Information Retrieval System for Learning Experiences in the Virtual Environments - Section 2 - SCREEN CAPTURE for LIFELOGGING

Sanal Ortamlardaki Öğrenme Deneyimleri İçin Bir Enformasyon Erişim Sistemi Tasarımı  - Bölüm 2
YAŞAM GÜNLÜĞÜ İÇİN EKRAN GÖRÜNTÜSÜ YAKALAMA


Arama motorları genellikle web içeriğini indekslemeyi hedeflemektedir. Kişisel enformasyon yönetiminde ise ağırlıklı olarak bireyin kullandığı bilgisayarlar üzerinden erişilen, düzenlenen ve depolanan enformasyona odaklanılır. Elektronik belgelerin günlüğünü oluşturan LifeStreams projesinin bireyin kişisel enformasyonunun zaman ekseninde yönetimi için önerilen ilk yaklaşımlardan biri olduğu görülmektedir (Freeman ve Fertig, 1995). Bu yaklaşımdan yola çıkarak, bireyin geleceğe yönelik niyetlerini (planları) saptayıp, gerçekleştirdiği etkinliklerle karşılaştırabilen bir sistemi 2010 yılında, öneren Picault ve arkadaşları, kişisel enformasyonun organizasyonu ve yapılandırılmasına yönelik yaklaşımların zaman bazlı, konum bazlı ya da bu ikisinin birleşimi şeklinde sınıflandırılabileceklerini ileri sürmüşlerdir (Picault ve diğ., 2010). Zaman bazlı yaklaşımlarda belgeler bir zaman çizgisi boyunca düzenlenmekte ve örnek olarak Microsoft’un MyLifeBits projesi verilmektedir. MyLifeBits projesinde Gordon Bell profesyonel bir ekibin yardımıyla 2000’lerin başından bu yana günlük yaşamında gördüğü, duyduğu, ürettiği, gönderdiği ya da aldığı bütün enformasyonu yakalayıp saklamakta ve kişisel ve profesyonel niteliklerine göre zaman ekseninde erişilebilir bir biçimde depolamaktadır (Bell ve Gemmell, 2009). Bu proje daha sonraki yıllarda “yaşam günlüğü” araştırmalarına ilham kaynağı olmuştur. 

Gurrin, Smeaton ve Doherty (2014)’e göre “yaşam günlüğü”, birey tarafından taşınan bir “yaşam günlüğü cihazı” tarafından çeşitli algılayıcılar yardımıyla bireyin yaşam deneyimlerine ait verilerin toplanması, işlemesi ve yansıtılması sürecidir. Günlük verileri görüntü, ses, video, konum verisi, hız verisi, sıcaklık, ışık düzeyi, vb. çok çeşitli algılayıcılardan elde edilebilir. Zaman günlüğü sistemleri kullanıldıkça zamanla kişisel büyük veri ortaya çıkar (Gurrin ve diğ., 2014). 

Yaşam günlüğü, yapısı gereği zamansal bir enformasyon yakalama sistemidir ve yakalanan günlük verileri mutlaka bir zaman verisiyle etiketlenirler. Algılayıcılardan elde edilen günlük verileri üzerinde örüntü tanıma teknikleri yardımıyla yer, kişi, olay vb. bağlamları elde edilir ve zaman bağlamıyla birlikte bireyin geçmiş deneyimlerine erişmek amacıyla kullanılırlar (Mutlu, 2015). 

Yaşam günlüğü araştırmalarında ağırlıklı olarak giyilebilir yaşam günlüğü kameralarına odaklanıldığı için bireylerin bilgisayar başında yaşadıkları deneyimlerin incelenmesine çok yer verilmemiştir. Bunun istisnası olarak, (Gurrin, 2012), (Chen ve Jones, 2009) ve (Mohamed, 2013)’de geliştirilen yaşam günlüğü sistemlerinde, ikincil amaçlarla, farklı zaman aralıklarında sürekli olarak bilgisayar ekranı görüntüsü yakalamaya da verilmiştir. Bilgisayar ekranı görüntülerinin giyilebilir kameralarla yakalanması durumunda, ekran görüntülerinin işlenmesini sağlayan bir sistem denenmiştir (Kimura ve diğ., 2013). Mutlu, kamera görüntülerinin yanı sıra ekran görüntülerini de düzenli olarak kaydeden bir yaşam günlüğü sistemi geliştirerek bu konuyu araştırmıştır (Mutlu, 2013). İlgili araştırmada yaşam günlüğü ile yakalanan ekran görüntüleri kullanıcı tarafından taranarak, görüntülerin anımsattığı etkinlikler ya da olaylar yine kullanıcı tarafından yorumlanmakta ve anlamlandırılmaktadır. Böylece kullanıcı yaşadığı öğrenme deneyimlerine tekrar erişme ve düzenleme olanağı elde etmektedir. 


Ekran Görüntüsünden Karakter Tanıma 


Optik karakter tanıma (OCR) yapay zekâ alanının en başarılı uygulamalarından birisidir. Genellikle kâğıt ortamındaki görüntünün bir tarayıcı yardımıyla görüntü dosyasına aktarılması ve bu görüntü dosyası üzerinde çalışarak kâğıt ortamındaki metnin tanınması şeklinde gerçekleşmektedir. Bu süreç genel olarak görüntünün ön işlemden geçirilmesi, karakterlerin belirlenmesi ve tanınması ile metnin yerleşim ve dil konularının ele alındığı son işlemeden geçirme şeklinde üç aşamada gerçekleştirilmektedir (Wikipedia, 2016b). Dijital görüntülerden metin elde edilmesi ise ayrı bir araştırma konusudur. Einsele-Aazami (2008) dijital görüntülerden metin elde etme işleminin dört alt alana ayırmaktadır: (1) web görüntüleri, (2) video görüntüleri, (3) dijital kameralarla yakalanmış görüntüler ve (4) ekran görüntüleri. Bu alanların her birinin kendisine ait özellikleri nedeniyle metin belirleme ve tanıma süreci farklılaşmaktadır. Bilgisayar ekranındaki görüntülerden metin elde etme işlemi ise metnin bilgisayar ekranındaki karmaşık yerleşim tasarımı, metnin karmaşık arka görüntüye sahip olabilmesi, küçük font boyutlarının kullanımı (<10 punto) gibi özelliklerden dolayı özel bir araştırma alanını oluşturmaktadır (Einsele-Aazami, 2008). Genellikle ekrandaki harflerin kenarlarının yumuşatılmış olması (antialiased) özel bir işlemden geçirilmesini gerektirebilmektedir (Gleichman ve diğ., 2011). Ekrandan metin yakalama konusunda çeşitli yaklaşımlar geliştirilmiş ve varolan yaklaşımlar karşılaştırılmıştır (Wachenfeld ve diğ., 2006; Rashid ve diğ., 2011). 


Yakalayıcı Uygulamanın Geliştirilmesi 


Bu çalışma kapsamında, sürekli olarak ekran görüntülerini yakalayan bir yaşam günlüğü yazılımıyla, ekran görüntülerindeki yazıları metne dönüştürecek bir açık kaynak kodlu optik karakter tanıma (OCR) yazılımı birleştirilerek yeni bir uygulama geliştirilmiştir. Bu uygulama ile görüntü kaydetme ve görüntüden elde edilen metni kaydetme işlemleri eş zamanlı olarak yapılmaktadır. Bu amaçla, önceki projelerde geliştirilmiş olan “LifeLoggingSC” ekran görüntüsü yakalama yazılımına bir açık kaynak kodlu ekran görüntüsünden metin elde etme ve saklama yazılımı entegre edilerek “LifeLoggingSC (OCR)” yazılımı oluşturulmuştur (Mutlu, 2016a). “LifeLoggingSC (OCR)” uygulaması, bu çalışmanın da dâhil olduğu, yürütülmekte olan bir TÜBİTAK projesinde geliştirilen/geliştirilecek bir dizi yazılımın ilk basamağıdır ve projenin isimlendirme kuralları doğrultusunda “MLevels1” üst başlığı ile yeniden isimlendirilmiştir. 

Ekran görüntüsünden optik karakter tanıma ile metin elde etme amacıyla Tesseract (Smith, 2007) tabanlı açık kaynak kodlu OCR yazılımları araştırılmış ve Christopher Brochtrup tarafından geliştirilmiş olan, komut satırı ile çalıştırılabilen ve ekran görüntülerinden başarıyla metin elde edebilen, AutoHotkey (AutoHotkey, 2016) ile kodlanmış, Tesseract tabanlı Capture2Text yazılımının kullanılmasına karar verilmiştir. Capture2Text yazılımında önce görüntü yakalama ve görüntü üzerinde Leptonica ile iyileştirme yapma şeklinde ön işlem, ardından Tesseract aracılığı ile metin yakalama (metin belirleme ve tanıma) ve son olarak da metin üzerinde dil işlemlerinin gerçekleştirildiği işlem-sonrası aşamalarının bulunduğu görülmektedir (Capture2Text, 2016). Leptonica, Dan Bloomberg tarafından, görüntü işleme ve görüntü çözümleme uygulamalarında kullanılan açık kaynak kodlu yazılımların eğitsel amaçlarla yayınlandığı bir sitedir (Bloomberg, 2016). Tesseract, 1984-1995 yılları arasında HP Laboratuvarlarında çalışan Ray Smith tarafından doktora tezi esnasında geliştirilmiş bir OCR motorudur. 2005 yılında HP firması Tesseract’ı açık kaynak koduyla birlikte yayınlamıştır (Tesseract, 2016). Tesseract aralarında Türkçe’nin de bulunduğu 50’den dili desteklemektedir. 


M-Levels1 Uygulamasının Kullanımı 


Microsoft Visual Studio 2013 geliştirme ortamında .Net 4.5 kitaplığı ile geliştirilmiş olan ve ekran görüntüsü yakalamak için System.Drawing.Imaging API'si kullananan M-Levels1 uygulaması çalıştırıldığında, önce ekran görüntüsünü yakalanmakta ve kaydetmekte, ardından “Capture2Text” yazılımı çağrılarak ekran yeniden taranmakta ve metinler çıkartılarak, görüntü dosyasının bulunduğu klasörden ayrı bir klasöre, metin dosyası biçiminde kaydedilmektedir. İlk denemelerde, yakalanan görüntünün kaydedildiği dosyadan Capture2Text ile metin elde edilmesi öngörülmüş olmasına rağmen, Capture2Text'in “jpeg” formatına göre daha fazla yer kaplayan yüksek duyarlıklı “TIFF” formatlı görüntü dosyası kullanması gereği nedeniyle, ekran görüntüsü yakalama ve ekran metni yakalama işleminin ayrı ayrı gerçekleştirilmesine karar verilmiştir. Görüntüler ve görüntülerin içerdiği metinler kullanıcının OneDrive klasörünün altındaki "Resimler\LifeLogging" klasörünün altındaki, yakalamanın gerçekleştiği yıl, ay ve güne ait klasörlerin altında tutulmaktadır. Aynı güne ait yakalanan görüntüler [kullanıcı adı-bilgisayar adı-"ScreenCapture"] ibaresini içeren klasörün altında, zaman etiketli görüntü dosyalarına; yakalanan görüntülere ait metinler ise [kullanıcı adı-bilgisayar adı-"ScreenCaptureOCR"] ibaresini içeren klasörün altında, zaman etiketli metin dosyalarına kaydedilmektedir. Yakalama işlemi, yakalayıcı yazılımda Start düğmesine tıklandıktan sonra Stop düğmesine tıklanana kadar varsayılan olarak her 30 saniyede bir tekrarlanmaktadır (Şekil 1).


Şekil 1: M-Levels1 Uygulamasının Arayüzü


Ekran Görüntülerinden Metin Elde Etmenin Özellikleri 


Yakalanan ekran metinleri ekran görüntüsüne göre oldukça az yer kaplamaktadır. Rassal olarak seçilen bir güne ait 2560x1440 ekran çözünürlüğüne sahip ekran görüntüleri dosyalarının büyüklüğü 29 KB ile 423 KB arasında olurken, aynı güne ait metin dosyalarının büyüklüğü 1 KB ile 9 KB arasında değişmektedir. Diskte kapladığı yer az olmasına rağmen M-Levels1 ile gerçekleştirilen yakalama işlemi uzun sürede toplamda çok büyük metinsel verinin elde edilmesine ve saklanmasına neden olacaktır. Olası en büyük değerler için; günde 2.880 görüntü/gün x 2.000 kelime/görüntü =5.760.000 kelime/gün; yılda 5.760.000 kelime/gün x 365 gün = 2.102.400.000 kelime öngörülmektedir. Bu değerlerin sadece bir bilgisayara ait olduğu, yaşam günlüğü sisteminin kullanıcıya ait birden fazla bilgisayardan görüntü alabildiği unutulmamalıdır. Bu aşamada bu sayıları bir ölçüde azaltmak amacıyla “ekranda değişiklik yoksa kayıt yapmama” benzeri iyileştirmeler gerçekleştirilebilir.


[*] Bu bölümün yazılmasında “Mutlu, M.E. (2016). Sanal Ortamlardaki Öğrenme Deneyimleri İçin Bir Enformasyon Erişim Sistemi Tasarımı, 7. Uluslararası Eğitimde Yeni Eğilimler Kongresi – ICONTE 2016, 13-15 Mayıs 2016 , Antalya“ kaynağından yararlanılmıştır.

(Not: Yararlanılan kaynaklar yazı dizisinin sonunda topluca verilecektir.)













15 Mart 2016 Salı

[Working Paper] Screen Capture for LifeLogging - OCR Version

[Çalışma Raporu] Yaşam Günlüğü İçin Ekran Görüntüsü Yakalama - OCR Sürümü

Mutlu, M.E. (2016). Yaşam Günlüğü için Ekran Görüntüsü Yakalama – OCR Sürümü. Çalışma Raporu. Kişisel Bilgi Sistemleri Blogu. (15 Mart 2016).
http://personalinformationsystems.blogspot.com.tr/2016/03/working-paper-screen-capture-for.html

Yaşam Günlüğü İçin Ekran Görüntüsü Yakalama - OCR Sürümü

Mehmet Emin Mutlu
Anadolu Üniversitesi, Açıköğretim Fakültesi
memutlu@anadolu.edu.tr

Özet
Bilgisayarı yoğun olarak kullanan bireylerin bir yaşam günlüğü sistemiyle ekran görüntülerini kaydetmeleri, daha sonra gereksinim duyduklarında yaşam deneyimlerine geri dönerek anımsamalarını kolaylaştıracaktır. Bilgisayar ekranı görüntülerinde görüntü ve videonun yanı sıra yoğun metin bulunur. Ekran görüntüsü yakalama uygulamalarının bu metinleri ekran görüntüsünü tarayarak elde etmeleri ve kaydetmeleri deneyimlerin bilgisayar tarafından tanımlanması için sistemlerin geliştirilmesine olanak sağlayabilir. Bu çalışmada, bir yaşam günlüğü sistemiyle bütünleşik olan ekran görüntüsü yakalama uygulamasına, yakalanan ekran görüntülerindeki metinlerin açık kaynak kodlu bir optik karakter tanıma uygulamasıyla elde edilmesi ve görüntülere paralel biçimde kaydedilmesi işlevleri eklenerek, yeni bir araç geliştirilmiştir. Çalışmanın sonunda geliştirilen aracın potansiyel kullanım biçimleri tartışılmıştır.

Anahtar Sözcükler: Ekran görüntüsü yakalama, yaşam günlüğü, ekrandan karakter tanıma


Giriş

Yaşam günlüğü araştırmalarında ağırlıklı olarak giyilebilir yaşam günlüğü kameralarına odaklanıldığı için bireylerin bilgisayar başında yaşadıkları deneyimlerin incelenmesine çok yer verilmemiştir. Mutlu, kamera görüntülerinin yanı sıra ekran görüntülerini de düzenli olarak kaydeden bir yaşam günlüğü sistemi geliştirerek bu konuyu araştırmıştır (Mutlu, 2013). İlgili araştırmada yaşam günlüğü ile yakalanan ekran görüntüleri kullanıcı tarafından taranarak, görüntülerin anımsattığı etkinlikler ya da olaylar yine kullanıcı tarafından yorumlanmakta ve anlamlandırılmaktadır. Bilgi çalışanlarının ekran görüntülerinde görüntü ve videonun yanı sıra metin de önemli yer tutmaktadır. Bu çalışmada kullanıcıların yaşam günlüğü araçlarıyla yakaladıkları bilgisayar ekranı görüntülerini anlamlandırma işlemini desteklemek amacıyla ekran görüntülerinde yeralan metinlerin elde edilmesini sağlayacak açık kaynak yazılımlarıyla desteklenmiş bir uygulamanın geliştirilmesi amaçlanmıştır. 

Ekran görüntüsünden karakter tanıma

Optik karakter tanıma (OCR) yapay zekâ alanının en başarılı uygulamalarından birisidir. Genellikle kağıt ortamındaki görüntünün bir tarayıcı yardımıyla görüntü dosyasına aktarılması ve bu görüntü dosyası üzerinde çalışarak kağıt ortamındaki metnin tanınması şeklinde gerçekleşmektedir. Bu süreç genel olarak görüntünün ön işlemden geçirilmesi, karakterlerin belirlenmesi ve tanınması ve metnin yerleşim ve dil konularının ele alındığı son işlemeden geçirme şeklinde üç aşamada gerçekleştirilmektedir (Wikipedia, 2014). Dijital görüntülerden metin elde edilmesi ise ayrı bir araştırma konusudur. Einsele-Aazami (2008) dijital görüntülerden metin elde etme işleminin dört alt alana ayırmaktadır: (1) web görüntüleri, (2) video görüntüleri, (3) dijital kameralarla yakalanmış görüntüler ve (4) ekran görüntüleri. Bu alanların her birinin kendisine ait özellikleri nedeniyle metin belirleme ve tanıma süreci farklılaşmaktadır. Bilgisayar ekranındaki görüntülerden metin elde etme işlemi ise metnin bilgisayar ekranındaki karmaşık yerleşim tasarımı, metnin karmaşık arka görüntüye sahip olabilmesi, küçük font boyutlarının kullanımı (<10 punto) gibi özelliklerden dolayı özel bir araştırma alanını oluşturmaktadır (Einsele-Aazami, 2008). Ekrandan metin yakalama konusunda çeşitli yaklaşımlar geliştirilmiş ve varolan yaklaşımlar karşılaştırılmıştır  (Wachenfeld ve ark.; 2006; Rashid ve ark., 2011).

Geliştirilen uygulama

Optik karakter tanıma (OCR) teknolojisiyle ekran görüntülerindeki yazıları metne dönüştürecek bir uygulama geliştirilmiştir. Bu uygulama ile görüntü kaydetme ve görüntüden elde edilen metni kaydetme işlemleri eş zamanlı olarak yapılmaktadır. Ekran görüntüsünden metin elde etme ve saklama işlevi önceki projelerde geliştirilmiş olan LifeLoggingSC (Screen Capture) ekran görüntüsü yakalama yazılımına entegre edilerek LifeLoggingSC (OCR) (ScreenCapture-Optical Character Recognition ) yazılımı oluşturulmuştur. 

Ekran görüntüsünden optik karakter tanıma ile metin elde etme amacıyla Tesseract (Smith, 2007) tabanlı açık kaynak kodlu OCR yazılımları araştırılmış ve komut satırı ile çalıştırılabilen ve ekran görüntülerinden başarıyla metin elde edebilen AHK ile kodlanmış, Tesseract tabanlı Capture2Text (Brochtrup, 2014) yazılımının kullanılmasına karar verilmiştir. Capture2Text yazılımında önce görüntü yakalama ve görüntü üzerinde Leptonica ile iyileştirme yapma şeklinde ön işlem, ardından Tesseract aracılığı ile metin yakalama (metin belirleme ve tanıma) ve son olarak da metin üzerinde dil işlemlerinin gerçekleştirildiği işlem-sonrası aşamalarının bulunduğu görülmektedir (Brochtrup, 2014). Leptonica, Dan Bloomberg tarafından, görüntü işleme ve görüntü çözümleme uygulamalarında kullanılan açık kaynak kodlu yazılımların eğitsel amaçlarla yayınlandığı bir sitedir (Leptonica.com). Tesseract 1984-1995 yılları arasında HP Laboratuvarlarında çalışan Ray Smith tarafından doktora tezi esnasında geliştirilmiş bir OCR motorudur. 2005 yılında HP firması Tesseract’ı açık kaynak koduyla birlikte yayınlamıştır. Tesseract aralarında Türkçe’nin de bulunduğu 50’den dili desteklemektedir. Günümüzde https://code.google.com/p/tesseract-ocr/ sitesinden erişilebilmektedir (Smith, 2007). 

LifeLoggingSC (OCR) Uygulamasının Kullanımı
.Net 4.5 ile geliştirilmiş olan ve ekran görüntüsü yakalamak için System.Drawing.Imaging API'si kullananan LifeLoggingSC (OCR) uygulaması çalıştırıldığında, önce ekran görüntüsü yakalanmakta ve kaydedilmekte, ardından Capture2Text yazılımı çağrılarak ekran yeniden taranmakta ve metinler çıkartılarak görüntü dosyasından ayrı bir klasöre kaydedilmektedir. İlk denemelerde, yakalanan görüntünün kaydedildiği dosyadan Capture2Text ile  metin elde edilmesi öngörülmüş olmasına rağmen, Capture2Text'in yüksek duyarlıklı TIFF dosyası kullanması gereği nedeniyle, ekran görüntüsü yakalama ve ekran metni yakalama işleminin ayrı ayrı gerçekleştirilmesine karar verilmiştir. Görüntüler ve görüntülerin içerdiği metinler kullanıcının OneDrive klasörünün altındaki "Resimler\LifeLogging" klasörünün altındaki, yakalamanın gerçekleştiği yıl, ay ve güne ait klasörlerin altında tutulmaktadır. Aynı güne ait yakalanan görüntüler [kullanıcı adı-bilgisayar adı-"ScreenCapture"] ibaresini içeren klasörün altında, zaman etiketli görüntü dosyalarına; yakalanan görüntülere ait metinler ise  [kullanıcı adı-bilgisayar adı-"ScreenCapture-OCR"] ibaresini içeren klasörün altında, zaman etiketli metin dosyalarına kaydedilmektedir. Yakalama işlemi Start düğmesine tıklandıktan sonra Stop düğmesine tıklanana kadar varsayılan olarak her 30 saniyede bir tekrarlanmaktadır.


Resim 1. LifeLoggingSC (OCR) uygulamasının arayüzü

Sonuç ve Öneriler
Yakalanan ekran metinleri ekran görüntüsüne göre oldukça az yer kaplamaktadır. Rassal olarak seçilen bir güne ait 2560x1440 ekran çözünürlüğüne sahip ekran görüntüleri dosyalarının büyüklüğü 29 KB ile 423 KB arasında olurken, aynı güne ait metin dosyalarının büyüklüğü 1 KB ile 9 KB arasında değişmektedir. Diskte kapladığı yer az olmasına rağmen LifeLoggingSC (OCR) ile gerçekleştirilen yakalama işlemi toplamda çok büyük metinsel verinin elde edilmesine ve saklanmasına neden olacaktır. Olası en büyük değerler için; günde 2.880 görüntü/gün x 2.000 kelime/görüntü =5.760.000 kelime/gün; yılda 5.760.000 kelime/gün x 365 gün = 2.102.400.000 kelime öngörülmektedir. Bu değerlerin sadece bir bilgisayara ait olduğu, yaşam günlüğü sisteminin kullanıcıya ait birden fazla bilgisayardan görüntü alabildiği unutulmamalıdır. Bu aşamada bu sayıları bir ölçüde azaltmak amacıyla “ekranda değişiklik yoksa kayıt yapmama” benzeri iyileştirmeler gerçekleştirilebilir. Diğer taraftan LifeLoggingSC (OCR) ile yakalanan ekran metinlerinin bir masaüstü arama motoru yardımıyla indekslenmesi sonucunda, bireyler ekran görüntülerini anahtar sözcükler aracılığıyla arama olanağına kavuşabilirler. 

Teşekkürler

Bu çalışma Türkiye Bilimsel ve Teknik Araştırmalar Kurumu (TÜBİTAK) tarafından 115K497 nolu araştırma projesi kapsamında desteklenmiştir.

Yararlanılan Kaynaklar

  • Brochtrup, C. (2014). “Capture2Text”, http://capture2text.sourceforge.net/, Son erişim tarihi: 26.08.2015
  • Einsele-Aazami (2008). Recognition Of Ultra Low Resolution, Anti-Aliased Text With Small Font Sizes.  Phd. Dissertation Department of Computer Science - University of Fribourg. Switzerland.
  • Mutlu, M.E. (2013). “Öğrenme Deneyimlerinin Kaydedilmesi İçin Çoklu Cihaz Tabanlı Bir Yaşam Günlüğü Sisteminin Geliştirilmesi”, Eğitim ve Öğretim Araştırmaları Dergisi (JRET), 2(4), 256-269.
  • Rashid, S. F., Shafait, F., & Breuel, T. M. (2011). “An evaluation of HMM-based Techniques for the Recognition of Screen Rendered Text”, In Document Analysis and Recognition (ICDAR), 2011 International Conference on (1260-1264), IEEE.
  • Smith, R. (2007). “An Overview of the Tesseract OCR Engine”, In ICDAR, 7, 629-633.
  • Wachenfeld, S., Klein, H. U., & Jiang, X. (2006). “Recognition of screen-rendered text”, In Pattern Recognition, 2006, ICPR 2006, 18th International Conference on (1086-1089), IEEE.
  • Wikipedia (2014a). “Optical character recognition”, http://en.wikipedia.org/wiki/Optical_character_recognition, Son erişim tarihi: 25.03.2016 

31 Mayıs 2013 Cuma

Hardware of LifeLogging Project

LifeLogging Projesinin Donanımları

"Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" projesinde geliştirme ve uygulama sürecinde giyilebilir yaşam günlüğü kameraları, akıllı telefonlar, tabletler, diz üstü bilgisayarlar ve masaüstü bilgisayarlar kullanılacaktır.  Windows Phone 8 yüklü olan Nokia Lumia 920 model akıllı telefonlar 12 Mart 2013 tarihinde temin edilmiştir. Bu telefonlarda projede geliştirilen LifeLoggingCCPhone yazılımı kullanılacaktır. Uygulayıcılar hareket halindeyken ya da bilgisayarları başında değilken bulundukları ortamı görüntülemek istediklerinde bu yazılımdan yararlanacaklardır.
30 Mayıs 2013 tarihinde ise tümünde Windows 8 Pro işletim sistemi yüklü olan tablet, dizüstü ve masaüstü bilgisayarlar gelmiştir. 

Projede tablet bilgisayar olarak Samsung Ativ Smart PC Pro kullanılacaktır. Bu cihazda projenin uygulama sürecinde LifeLoggingSC, LifeLoggingSCDesktop ve LifeLoggingCC yazılımları yüklü olacaktır. Uygulayıcıların bu tableti mobil durumda iken ya da iş dışında sosyal medyaya erişirken ekran görüntülerini kaydetmek ya da ortamı görüntülemek amacıyla kullanacakları öngörülmektedir.
Projede kullanılacak olan dizüstü bilgisayarlar için Lenovo IdeaPad Yoga 13 seçilmiştir. Bu bilgisayarlarda da LifeLoggingSC, LifeLoggingCC ve LifeLoggingSCDesktop çalışacaktır. Uygulayıcılar bu bilgisayarı iş ortamı dışında seyahat halindeyken profesyonel kullanım anında ekran ve ortam görüntülerini kaydetmek amacıyla tercih edeceklerdir. 
Projede kullanılacak masaüstü bilgisayar olarak Sony Vaio L seçilmiştir. Bu bilgisayar ev ortamında kullanılacaktır ve diğer yazılımların yanısıra AllMyListsLE ve LifeLoggingTransporter yazılımları için kullanılacaktır. Bu yazılımlarla yaşam ve öğrenme deneyimlerini yönetebileceklerdir.
Projede kullanılacak donanımların arasında sadece giyilebilir yaşamgünlüğü kameraları henüz temin edilememiştir. Bu donanım türü için Autographer ya da Memoto marka giyilebilir kameralar düşünülmektdir. Henüz her iki kamera da piyasaya sürülmemiştir.



Uygulayıcılar bu kameraları günlük yaşamlarında içinde bulundukları ortamı kaydetmek amacıyla kullanacaklardır.

18 Nisan 2013 Perşembe

Transfer Images From SkyDrive Folders To Local Folders

Görüntüleri SkyDrive Klasörlerinden Yerel Klasörlere Taşıma

Önceki yayından günümüze geçen süre içerisinde bir Windows Store uygulaması olan LifeLoggingCC yazılımının masaüstü sürümünü geliştirdim. LifeLoggingCCDesktop olarak adlandırdığım bu yazılım Windows 7 ve Windows 8 masaüstünde çalışmakta ve yerel klasörlere erişebildiği için doğrudan SkyDrive klasörüne kayıt yapabilmektedir. Kamera görüntüsü kaydeden yazılımlar genellikle kamera görüntüsünü önce ekrandaki bir "image" nesnesine yansıtmakta ve bu nesne üzerinden kayıt gerçekleştirmektedirler. Bu durum kullanılan API'lere göre değişen çeşitli sorunlara neden olmaktadır. Bazı durumlarda "image" üzerin başka bir pencere geldiğinde "overlay" gerçekleşmekte ve kaydedilen resimde üstteki pencereye ait parça da görünmekte. Bazı durumda da "image" 'ı içeren pencere küçültüldüğünde görüntü alınamamakta. Bu nedenle LifeLoggingCCdesktop'u geliştirirken image kullanmayan bir çözüm aradım ve OpenCV'yi keşfettim. OpenCV'yi .Net ortamında kullanmak amacıyla EMGU.CV wrapper'inı kullandım. Sonuçta LifeLoggingSC şeklinde çalışan bir uygulama ortaya çıktı.



Bu arada LifeLoggingCC yazılımını LifeLoggingCCPhone'da olduğu gibi görüntüleri doğrudan SkyDrive'a "upload" yapacak şekilde yeniden düzenledim. Bu amaçla Live SDK 5.3 kullandım.

 "Capture" Ekranı

"Images" Ekranı

"Upload" Ekranı

4 Nisan'daki http://personalinformationsystems.blogspot.com/2013/04/data-gathering-from-lifelogging-devices.html sayfasında LifeLogging yazılımlarıyla oluşturulan ve SkyDrive'da biriken görüntülerin yerel klasörlere aktarılması amacıyla LifeLoggingTransporter  isimli bir uygulamanın geliştirilmesi gerektiğini belirtmiştim. Geçen süre içerisinde LifeLoggingTransporter programını tamamladım.

Program kullanıcıya üç seçenek sunmaktadır. Bunlardan birincisi LifeLoggingSC ve LifeLoggingCCDesktop uygulamalarının oluşturduğu ve SkyDrive altındaki Resimler\LifeLogging klasörüne kaydettikleri ekran görüntüleri ve kamera görüntülerinin buradan alınarak yerel Resimlerim\LifeLogging klasörüne taşınmasını sağlıyor. İkinci seçenek LifeLoggingCC ve LifeLoggingCCPhone Windows Store uygulamalarının oluşturduğu ve doğrudan SkyDrive'a "upload" yaptıkları kamera görüntülerinin yerel klasörlere taşınmasını sağlamaktadır. Üçüncü seçenek ise giyilebilir yaşam günlüğü kameralarının görüntülerinin yerel klasörlere aktarılması amacıyla rezerv edilmiştir.


 "Seçenekler" Ekranı


"Birinci Aşama" Ekranı


"İkinci Aşama" Ekranı

Taşıma işlemleri iki aşamadan oluşmaktadır. Birinci aşamada SkyDrive klasörlerindeki görüntüler belirlenmekte ve kullanıcıya raporlanmakta, ikinci aşamada ise görüntüler yerel klasöre aktarılarak SkyDrive'dan kaldırılmaktadır.

Bu düzenlemeler sonucunda proje kapsamında ihtiyaç duyulan yazılımların tümü temel işlevlerini yerine getirecek düzeyde geliştirilmiş oldu. Geliştirilen yazılımların genel durumu aşağıdaki tabloda verilmiştir:




Ortamlar
Programlar
 Kullanılan API
Windows 7
Windows 8 Masaüstü
Windows 8 Store
Windows Phone 8
LifeLoggingSC
.Net 4.0
X
X
1
2
LifeLoggingCC
.Net 4.5 & Live SDK 5.3
X
LifeLoggingCCDesktop
.Net 4.0
EMGU SDK (.Net Wrapper for OpenCV)
X
X
3
LifeLoggingCCPhone
.Net Phone 8 SDK & Live SDK 5.3
X
LifeLoggingTransporter
.Net 4.0
X
X
AllMyListsLE
.Net 4.0
X
X
AllMyListsMetro (Tercihe bağlı)
.Net 4.5
X
1 Windows 8 Store uygulamalarının ekran görüntüsü almaları OS düzeyinde engellenmiştir.
2 Windows Phone 8 uygulamalarının ekran görüntüsü almaları OS düzeyinde engellenmiştir.
3 LifeLoggingCCDesktop Windows 8 masaüstünde çalıştırıldıktan sonra Windows Store uygulamalarına geçildiğinde de ekran kaydetmeye devam etmektedir.

Bundan sonraki aşamada AllMyListsLE yazılımına ağırlık verilecektir. Gerçek görüntüler ile denemeler gerçekleştirilecek, yazılıma Öğrenme Deneyimlerini Betimleme Sihirbazı eklenecek, yazılımın öğrenme deneyimlerinin kaydedilmesi, planlanması ve değerlendirilmesi amacıyla kullanımı araştırılacaktır.

LifeLogging yazılımlarında ise çok kameralı bilgisayarlarda kamera seçimi olanağı sağlanacaktır. Görüntülere konum ve IP bilgisi gömülmesi araştırılacaktır. Ayrıca tüm yazılımların görsel yapısı üzerinde çalışılacaktır. Projenin uygulama aşamasına kadar geçecek sürede yazılımların ayrıntılı kurulum ve kullanım testleri gerçekleştirilecek, dokümantasyonu tamamlanacaktır.

4 Nisan 2013 Perşembe

Data Gathering from LifeLogging Devices with the Personal Cloud Storage Services

Yaşamgünlüğü Cihazlarından Bulut Depolama Hizmetleri İle Veri Toplama

"Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" projesinde kullanıcıların yaşamgünlüğü cihazlarını kullanarak gerçekleştirdikleri günlük kayıtlarının  depolanması ve biraraya getirilmesi süreci yavaş yavaş olgunlaşmaya başladı. 

Proje kapsamında kullanıcıların tüm bilgisayarlarından 30 saniyede bir ekran görüntülerinin alınması, cep bilgisayarları ve taşınabilir yaşam günlüğü kameralarıyla da 30 saniyede bir fotoğraf çekilmesi öngörülmüştü. Gelinen aşamada aygıtların görüntüleri Microsoft SkyDrive bulut depolama hizmetini kullanarak biraraya getirmeleri sağlandı. 

Ekran görüntüsü kaydetmek amacıyla kullanılan LifeLoggingSC ve LifeLoggingSCWin7 yazılımları görüntüleri bilgisayardaki SkyDrive klasörü altındaki LifeLogging klasöründe oluşturulan yıl, ay, gün tarihli klasörlerin içerisinde açtıkları kendilerini tanımlayan klasörlere kaydetmektedirler. 

Fotoğraf çekmek amacıyla kullanılan LifeLoggingCCPhone yazılımı ise görüntüleri kullanıcının http://skydrive.live.com sitesine SkyDrive uygulamasını kullanmadan kendisi yüklemektedir. Kullanılan Microsoft Live SDK 5.3 ile kullanıcı SkyDrive'da kendisine ait oturum açabilmektedir. Bu aşamada henüz sadece SkyDrive'in bilinen klasörlerine kayıt yapılabilmektedir. Sorun çözüldüğünde resimler SkyDrive\Resimler\LifeLogging klasörü altında yıl, ay, gün, cihaz klasörleri altına kaydedilecektir.

Windows 8 uygulaması olarak geliştirilen LifeLoggingCC ise şu anda kullanıcının Resimlerim\LifeLogging klasörüne kayıt yapmaktadır, ama bu yazılımın da görüntüleri online olarak SkyDrive sitesine yüklemesi sağlanacaktır. Ayrıca Windows 7 ve 8 altında masaüstü uygulaması olarak çalışacak bir LifeLoggingCCWin7 programı da esneklik sağlayacaktır. "CC" programları şu aşamada sadece bir kamerayı kullanabilmektedirler. Programlara cihazdaki kullanılabilir bütün iç ve dış kameraların arasından seçim yapma olanağı eklenmesi gerekmektedir.

Gerçekleştirilen tasarımın daha genel amaçlı olması amacıyla ekran kaydedici ve kamera görüntüsü kaydedici cihaz sayısında bir kısıtlama yapılmamıştır.  Kullanıcılar bilgisayarlarını ve telefonlarını uygun bir şekilde isimlendirmeleri koşuluyla sınırsız cihaz tanımlayabilirler. Bu aşamada taşınabilir yaşam günlüğü kamerası henüz temin edilmemiş olduğundan dolayı bu aygıtların nasıl isimlendirileceği konusunda bir deneyim bulunmamaktadır.

Diğer taraftan aynı bilgisayarları birden fazla kullanıcının kullanılması durumunda, kullanıcıların birbirlerinden ayırt edilebilmeleri için her kullanıcının bilgisayarı kendisine ait ayrı bir oturumda kullanması gerekmektedir. Şu anda LifeLoggingSC ve LifeLoggingSCWin7 yazılımları cihaz adı ve kullanıcı adına göre kayıt yapmaktadırlar.



Bu yöntemle Memutlu-Fujitsu bilgisayarını kullanan Memutlu kullanıcısının 4 Nisan 2013 tarihine ait ekran görüntüleri
C:\Users\memutlu\SkyDrive\Resimler\LifeLogging\2013\2013.04\2013.04.04\MEMUTLU-FUJITSU-ScreenCapture
klasörüne kaydedilmektedir. SkyDrive uygulaması bu dosyaları kendiliğinden http://skydrive.live.com bulutuna yüklemekte ve kullanıcının SkyDrive uygulaması kurulu olan bütün bilgisayarlarına güncellemektedir. 

Denemelerde kullanmakta olduğum ve kullanmayı planladığım cihazlar için belirlediğim cihaz klasörlerinin isimleri aşağıdaki gibi olacaktır.


LifeLoggingSC & LifeLoggingSCWin7
MEMUTLU-LENOVO-ScreenCapture
MEMUTLU-FUJITSU-ScreenCapture
MEMUTLU-MACBOOK-ScreenCapture
MEMUTLU-HP-ScreenCapture
MEMUTLU-SAMSUNG-ScreenCapture
LifeLoggingCCPhone
MEMUTLU-NOKIA-CameraCapture
LifeLoggingCC & LifeLoggingCCWin7
MEMUTLU-LENOVO-CameraCapture
MEMUTLU-FUJITSU-CameraCapture
MEMUTLU-MACBOOK-CameraCapture
MEMUTLU-HP-CameraCapture
MEMUTLU-SAMSUNG-CameraCapture
            Autographer
                        MEMUTLU-AUTOGRAPH-CameraCapture
            Memoto
                        MEMUTLU-MEMOTO-CameraCapture


Bütün cihazların görüntü göndermek amacıyla bulut kullanmaları önemli miktarda veri trafiğine yol açacaktır. Herhangi bir anda bir cihazın kullanılması ve günde ortalama 16 saat aktif olunması durumunda günlük 1 GB mertebesinde veri aktarımı oluşacaktır. Sistemin optimizasyonunu daha sonraki aşamalarda ele almayı planlıyorum. Bu amaçla akla gelen  iyileştirmelerden birisi belirli bir limit içerisinde aynı içeriğe sahip görüntülerin ayıklanmasıdır. 

AllMyListsLE yazılımında yeni yaşam günlüğü listesi olarak SkyDrive\LifeLogging klasörü tanımlandığında sorunsuz çalışmaktadır. Dolayısıyla sistem, veriler sürekli SkyDrive'da tutularak kullanılabileceği gibi, SkyDrive\LifeLogging klasörünün içeriğini düzenli aralıklarla yerel diske kopyalanarak da kullanılabilir. Bu durumda görüntüler SkyDrive'dan silinerek SkyDrive'ın şu andaki kapasitesi olan 7 GB limiti altında kalınabilir. Veriler sürekli SkyDrive'da tutulacak ise yıllık 100 GB için 50$ ödenerek bu işlem gerçekleştirilebilir. Günümüzde 1 TB kapasitesindeki taşınabilir disklerin fiyatlarının 100$ civarında olduğu düşünülürse SkyDrive'ın sadece aktarım için kullanılması, görüntülerin büyük kapasiteli taşınabilir disklerde tutulması daha çok tercih edilebilir. Bu amaçla LifeLoggingTransporter isimli bir aktarım programı yazılmasında yarar vardır. LifeLoggingTransporter hem giyilebilir yaşam günlüğü kamerasına ait görüntülerin hem SkyDrive'ın kökündeki kamera görüntülerinin hem de SkyDrive'daki ekran görüntülerinin kullanım ortamına aktarımını gerçekleştirebilir. Bu yazılım bağımsız bir yazılım olabileceği gibi AllMyListsLE içerisinde de yeralabilir.

"SC" yazılımlarının Microsoft SkyDrive yerine Google Drive ya da DropBox kullanmalarını sağlamak son derece kolaydır. Bu amaçla yazılımlara bir "ayar" ekleyerek masaüstü Google Drive ya da masaüstü DropBox uygulamalarının klasörlerini kullanmalarını sağlamak yeterli olacaktır. "CC" yazılımlarında ise "online upload" amacıyla Google Drive SDK ve DropBox SDK'larının kullanılması gerekmektedir. Bu nedenle "CC" yazılımlarının GoogleDrive ve DropBox bulutlarına kayıt yapabilmelerini bu proje kapsamının dışında tutuyorum.



29 Ocak 2013 Salı

Design of Lifelogging Image Capture Applications - 2

Yaşamgünlüğü Görüntü Yakalama Uygulamaları Tasarımı - 2

Aralık 2012 ayı içerisinde tasarımına başladığım görüntü yakalama yazılımlarına Ocak 2013 ayı içerisinde bir takım ayarlar ve sensör bilgilerini yakalama özellikleri ekledim.

LifeLoggingSC ekran görüntüsü yakalama yazılımına eklenen özellikler

LifeLoggingSC yazılımında Image Quality, Image Size, Capture Folder, Capture Interval ve File Prefix değerleri ayarlanabilir hale getirildi. 


Böylece kullanıcı programın Settings menüsünden yararlanarak resim kaydetme aralığı, resim kalitesi (jpeg quality), ekran çözünürlüğüne göre belirlenen resim büyüklüğü ve görüntülerin kaydedildiği klasörü belirleyebilmektedir.


LifeLoggingSC'de yapılan diğer bir değişiklik ise Screen Video Recording özelliğinin kaldırılması olmuştur. Böylece programın Expression Encoder bağımlılığı sona erdirildi. Ekran yakalama yazılımını gelştirmeye ilk başladığım günlerde yazılım forumlarında masaüstünde çalışan ekran yakalama yazılımlarının Windows 8 Başlat Menüsü ve Windows Store uygulamalarına ait ekran görüntülerini kaydetmediğine ilişkin çok sayıda yorumla karşılaşmıştım. WPF 4.5 ile bir masaüstü uygulaması olarak geliştirdiğim LifeLoggingSC programında bu sorun bulunmamaktadır. Hem masaüstü hem de Windows Store ekranları kaydedilebilmektedir. 

LifeLoggingCC kamera görüntüsü yakalama yazılımına eklenen özellikler

LifeLoggingCC'de ise Capture Interval, Image Quality ve Capture Prefix seçenekleri eklendi.

  
Bu yazılımda görüntü büyüklüğü 640x480 olarak sabitlenmiştir ve görüntü kalitesi henüz değiştirilememektedir.



LifeLoggingCCPhone kamera görünütüsü yakalama yazılımına eklenen özellikler

LifeLoggingCCPhone'da ise Capture Interval seçeneği eklendi. Standart 640x480 büyüklüğünde resim kaydedilmekte ve henüz bu aşamada görüntü kalitesi ve kaydetme klasörü (CameraRoll) değiştirilememektedir. 

Sensörler

Uygulamalara eklenen diğer bir özellik ise Tarih ve Saat etiketlerinini yanısıra sensör bilgilerinin algılanması olmuştur. 

LifeLoggingCC  görüntü kaydederken aynı zaman konum bilgisi, hız bilgisi ve ışık düzeyi bilgisini de belirleyebilmektedir. LifeLoggingCC denemeleri emülatörde gerçekleştirilmektedir. Gerçek denemeler için Windows 8 yüklü bir tabletin gelmesini bekliyorum.


LifeLoggingCCPhone ise görüntü kaydederken konum ve hız bilgisini de algılamaktadır. Programın denemeleri emulatör üzerinde gerçekleştirilmekte olduğundan dolayı gerçek denemeler için bir Windows Phone 8 telefonunun gelmesini beklemekteyim.


LifeLoggingSC'ye herhangi bir sensör algılaması eklenmemiştir. Sensör bilgileri henüz bu aşamada kaydedilmemektedir.  Sensör bilgilerinin resimlere gömülebilmesi için araştırma yapacağım.

Uyku modu

Geliştirilen ekran ve kamera görüntüsü yakalama yazılımlarının sürekli çalışabilmesi için üzerlerinde çalıştıkları aygıtların uyku moduna geçmemeleri gerekmektedir. Uyku modunda yazılımlar ya son yakaladıkları görüntüyü saklamaya devm ediyorlar ya da siyah ekran kaydediyorlar. Masaüstünde uyku modunu kapatmak çok sorun yaratmaz. Tablet'te bu durum kullanım süresini etkileyecektir. Telefonda ise uyku modu iptal edilebilir mi araştırılacak.