[Linux-programlama] Re: python, tif dosyaları ve ocr

---------

[Linux-programlama] Re: python, tif dosyaları ve ocr

From: Aydın ŞEN <adigeaydin_at_gmail.com>
Date: Fri, 1 Aug 2008 16:14:24 +0300
Message-ID: <2196d7e0808010614t76904c53qd6f6173951d300ff@mail.gmail.com>

> Tarayıcı dokumanları 1 bit yani siyah-beyaz tarıyor, haliyle renk
> kodlarına bakabilme gibi bir imkanım yok.
>
Bu taranmış tif dosyaları
> dokuman arşivi oluşturmak amacıyla taranmış ve dosya isimleri elimdeki
> veritabanı ile bağlantı kurabileceğim şekilde düzgün verilmiş, tek
> uğraştıran konu dokumanın türünün bulunması. Dokumanlar hemen hemen
> sabit ama bilgisayarda hazırlanan dokumanlar değil, çoğu matbu olarak
> basılmış ve üzerine sonradan dot-matrix yazıcı ile doldurulmuş ve daha
> sonra üzerinde bir sürü imza, kaşe vs. olan dokumanlar. Bazılarının
> kalitesi çok kötü oluyor çünkü matbu formlarda arka planda renkler
> şekiller var bunlar siyah-beyaz taranınca dokumanı bozuyor ama
> dokumanların bu hali bile arşiv amaçlı saklamak için yeterli, sonuşta
> fax kalitesinde olması yetiyor.

Merhaba,
Dökümanların siyah-beyaz olması okuma yapmak için sorun değil. Hatta okuma
da hız açısından faydasını bile görürsünüz.
Elinizdeki formların durumunu bilmiyorum ancak fikrimi bir örnekle
açıklamaya çalışayım. İhtiyacınıza uyarlanacak bir şey olup olmadığını
belirlersiniz.

Elimizde siyah beyaz formlar var. Bunların çerçevelerinin farklı olduğunu
varsayıyorum. Bir tanesinin sol kenarı (10,10) dan başlayıp (10,40) a kadar,
diğeri (15,15)-(15,50) olsun.
Gelen image'i (10*10) indisinden başlayıp (10,20) ye kadar okuyorum.
Siyah-beyaz image'larda o noktadaki doygunluk oranını alabiliyorunuz. Her
döküman aynı oranda yazılmamış olabilir ancak orada bir çizgi varsa bir
doygunluk oranı olacaktır, belirlediğiniz konumlar arasındaki her pixelin
doygunluk oranının ortalaması alınıp belirli bir oranın üstünde ise 1.
belgedir diyebiliriz. Hatta ufak tefek tahribatlara karşı hata payı verip
taramanızı (9-10-11,10) (9-10-11,20) arasında yapabilirsiniz.

Dediğim gibi elinizdeki dökümanlarda referans alabileceğiniz farklılıklar
varsa uygulanabilir bir yöntem. Farklı çözümleri de olabilir, şu an için
aklıma gelen bu.

> Dokumanları tiplerini belirlemek için
> daha önceden visual basic ile yazdığım programda ocr işleminden geçirip
> her sayfa için artık OCR ne kadarını tanıdıysa bir string değişkene atıp
> bunun içinde yalnız o dokumanda geçen keywordleri arattırıyordum. OCR
> olarak MS office 2003 ile gelen ocr komponentini visual basic içinden
> çalıştırıyordum, dokuman-sayfa-0012.tif dosyasını aç ocr yap çıkan
> sonucu bana string olarak döndür sonra bu stringin içinden önceden
> tanımlanmış keywordleri ara buna göre türünü tespit et gibi bir işlem
> yapıyorum. Şimdi o eski VB ile yazılmış programı düzeltmeye devam etmek
> yerine python ile aynı şeyi yapmaya çalışıyorum. Dokuman türünü tespit
> için ocr kullanmak bana kötü bir yöntem gibi geliyor çünkü amacım
> dokumandaki yazıları text olarak almak değil, yalnızca türünü tespit
> etmek, bütün bir sayfayı ocr işleminden geöirmek de sayfa başına 15 ile
> 30 sn arası bir süre tutuyor bu da performans açısından çok sıkıntı
> yaratıyor. Yalnızca dokuman türü tespiti için başka hangi yaklaşımlar
> var bunu bulmaya çalışıyorum, bu dokuman tanımlamanın OCR gibi bir
> kısaltması varsa google'dan aramalarımda kullanmak için bu işleme ne
> isim veriliyor bilmek isterim.
>
> Aydın ŞEN wrote:
> > Daha önce java ile ile image işleme ile uğraşmıştım. Ayıracağınız
> > döküman türelerinin sabit olduğunu varsayıyorum. Belgeleri ayırabilmek
> > için referanslara ihtiyacınız var. İlk olarak aklıma gelen örneğin her
> > image'in (10,10) boyutlarında bir alanının taranması (bu alan sizin
> > belirlediğiniz, dosyaların birbirinden renk olarak farklı olduğu alanlar
> > olmalı). Her dosya için bu alanların renk kodlarını belirlersiniz ve
> > daha sonra karşılaştırma ile dökümanın türünü ayırt edebilirsiniz. Bu
> > belirlediğiniz alanlarda değişken bir şey olmamalı, yazı falan gelmemeli
> > üzerine. Eğer dökümanlarınızda referans alabileceğiniz böyle alanlar
> > varsa bu yöntemle halledebilirsiniz diye düşünüyorum. Hele
> > tarayıcınızdan dökümanların düz bir şekilde taranma garantisi varsa
> > işiniz pek zor olmayacaktır.
> >
> > İlk olarak aklıma gelen çözüm bu.
> >
> > 2008/8/1 Timuçin Kızılay <tim_at_savaskarsitlari.org
> > <mailto:tim_at_savaskarsitlari.org>>
> >
> > Merhaba,
> >
> > Linux-sunucu mail listesine bu mesajı yazmıştım. Liste üyelerinden
> > bir arkadaş bu mail listesine yazmamı hatırlattı. Bu konu ile ilgili
> > birşeyle söyleyebilecek var mı?
> >
> > -------------------------
> > linux sunucu üzerinde python ile tif dosyalarını ocr işleminden
> > geçirmek
> > istiyorum. tif dosyaları ile uğraşmak için PIL (Python Imaging
> > Library)
> > kullanmaya çalıştım ama bu libray group4 sıkıştırmalı tif
> dosyalarını
> > desteklemiyor, kullandığım network dokuman scanner cihazı da bu
> > formatta
> > sıkıştırma yapıyor. ZSI python library diye birşey buldum,
> > bununla tif
> > dosyalarını sayfalara ayırma vb. işlemlerini yapabiliyorum. Şimdi
> > sıra
> > geldi OCR işlemi ile bu tif dosyalarında belgelerin türlerini
> > bulmaya.
> > OCR ile dokumanları text'e çevirmek gibi bir ihtiyacım yok, zaten
> o
> > dokumanlarda olan bilgilerin çoğu elimdeki bir veritabanında var,
> > benim
> > yapmaya çalıştığım OCR ile tif dosyalarını okutup bu dokumanların
> > türlerini ayırabilmek, yani şu sayfa faturadır, bu sayfa
> > makbuzdur, şu
> > sayfa bilmemne formudur gibi çoğunlukla hep aynı formatta
> > dokumanların
> > türlerini ayırabilmek. Bunun için OCR doğru yöntem değil diye
> > düşünüyorum ama aklıma başka yöntem gelmedi. Bu konuda ipucu
> > verecek var
> > mı?
> > Bu projenin aynı işini yapan benzer bir projeyi 3 yıl önce windows
> > üzerinde visual basic ile ve MS office içinden çıkan OCR library
> > kullanarak halletmiştim ama aynı yazılımı linux sunucu üzerinde
> > çalışacak şekilde python kullanarak yeniden yazmak istiyorum.
> >
> > -----------
> >
> > Sunucu listesi yerine programlama veya python listelerine
> gönderirseniz
> > daha çok kişi yardımcı olacaktır.
> >
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Fri 01 Aug 2008 - 15:41:42 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.