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