Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: Seniorinörtti - 20.01.15 - klo:18.06

Otsikko: Skannatun printteritekstin muokkaus
Kirjoitti: Seniorinörtti - 20.01.15 - klo:18.06
Onko sellaista ohjelma olemassa?

Sinulla on esim. joku ohje printattuna paperille. Skannat sen omalle koneellesi Asiakirjakansioon.
Jossain vaiheessa tiedot muuttuvat ja olisi paikalla tehdä päivitys. Joitakin numeroita lisätä, muuttaa tai poistaa, lauseita ,sanoja niinikään. Jottei koko ohje tarvis kirjoittaa alusta loppuun asti uudelleen vaan ainoastaan muutokset, tähän etsin ratkaisua.

Yritin kopioida skannatun ohjeen Tekstinkäsittelyohjelmaan(libreoffice-writer, Abiword) ja siinä tehdä muutokset. Ei onnistunut.

Löytyykö ratkaisu?

Omalla kohdalla asia on toistaiseksi ratkaistu.

Kiitos kaikille, jotka ovat antaneet vinkkejä ja osallistuneet asian käsittelyssä. Tässä vaiheessa OCR-Feeder on opettelun ja harjoittelun kohteena.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: kamara - 20.01.15 - klo:18.20
Taikasana on OCR, muttei minulla ole hyviä kokemuksia kyseisistä varsinkaan ilmaisista.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: nm - 20.01.15 - klo:19.11
Kuvankäsittelyohjelmilla, kuten Gimpillä, voi tehdä tuollaisia pieniä viilauksia skannattuihin dokumentteihin, jotka ovat siis kuvatiedostoja (tarkemmin bittikarttakuvia). Usein skannauksen laatu on kuitenkin jokseenkin huono, eikä tausta ole ilman käsittelyä aivan valkoinen, jolloin uudelleen tulostettaessa laatu voi olla oleellisesti alkuperäistä heikompi.

Tekstintunnistuksella eli OCR-ohjelmalla bittikarttakuvan voi muuttaa käsiteltäväksi tekstiksi, jolloin mm. fonttiasetuksia pystyy säätämään ja tulostuksen laatu on hyvä. Ongelmana on automaattisessa tekstintunnistuksessa syntyvät virheet, asettelun ja eri fonttikokojen häviäminen sekä dokumentin piirrokset ja muut elementit, joita ilmaisohjelmat eivät yleensä osaa tulkita oikein.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: Vika/fiba - 20.01.15 - klo:19.34
Ongelma on myös OCR-ohjelmien huono kielitaito; ne eivät osaa suomea.
Kokeilin Xsanella ja Gocr-tekstintunnstusohjelmalla. Englanninkielinen teksti tallentui jokseenkin lukukelpoisena tekstiasiakirjaan (toki siinä oli paljon kirjoitusvirheitä), mutta suomenkielisestä ei enää ymmärtänyt jutun sisältöä. Paljon kirjaimia ja kokonaisia sanoja puuttui.
Muitakin tekstintunnistusohjelmia pakettivarastoissa on. En tiedä ovatko parempia tai huonompia kuin gocr.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: kamara - 20.01.15 - klo:20.11
Voisi kokeilla myös seuraavaa...

Koodia: [Valitse]
sudo apt-get  install tesseract-ocr tesseract-ocr-fin

Sen jälkeen päätteellä:
Koodia: [Valitse]
tesseract -l fin kuvatiedostosi.png stdout

kuvatiedostosi.png:n sijasta skannatun tekstitiedoston nimi.

Sen jälkeen kopioida ohjelman tulostama teksti LibreOfficeen ja korjata virheet.

Edit - Valitettavasti kyseinen tunnistus kompuroi pahemman kerran I:n ja l:n tunnistuksessa.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: Vika/fiba - 20.01.15 - klo:20.45
Kokeilinpa minäkin kamaran ohjeen mukaan. Testi-A4 onnistui hienosti! Vain muutama kirjain väärin. Tätä voi jo käyttää ihan hyötyohjelmana. Kiitos neuvosta :)
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: kamara - 20.01.15 - klo:21.31
Kokeilinpa minäkin kamaran ohjeen mukaan. Testi-A4 onnistui hienosti! Vain muutama kirjain väärin. Tätä voi jo käyttää ihan hyötyohjelmana. Kiitos neuvosta :)

Uusi tuttavuus ohjelma oli minullekin, mutta ajattelin sen toimivan kohtalaisesti, kun löytyi Suomenkieltä varten oma paketti.

Edit - Pienellä scriptillä saattaisi saada kyseisen toimimaan tämänhetkistäkin paremmin.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: nm - 20.01.15 - klo:22.40
Edit - Valitettavasti kyseinen tunnistus kompuroi pahemman kerran I:n ja l:n tunnistuksessa.

Tämä riippuu jossain määrin fontista (serif on helpompi kuin sans serif, jossa I:llä ja l:llä ei ole välttämättä lainkaan eroa) ja kuvan resoluutiosta/laadusta. 300 dpi:n skannaus on Tesseractin kanssa suunnilleen optimaalinen, kun fontti on kokoa 10-12 pt. Tunnistettu teksti kannattaa sitten syöttää oikolukuun, joka näyttää käyttäjälle suurimman osan virheistä. Prosessiin voi käyttää jotain valmista OCR-käyttöliittymää tai tekstin voi tosiaan syöttää suoraan tekstinkäsittelyohjelmaan ja oikolukea siellä.

OCRFeeder (http://en.wikipedia.org/wiki/OCRFeeder) on kohtalaisen suosittu ja pienen opettelun jälkeen ihan toimiva käyttöliittymä Tesseractille. Osaa erottaa kuvasisällön tekstistä ja tukee oikolukua ja joitakin esiprosessointitoimenpiteitä (unpaper eli taustan suodatus sekä yksinkertainen rivien suoristus). Asentuu Ubuntun sovellusvalikoimasta.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: kamara - 21.01.15 - klo:08.02
Edit - Valitettavasti kyseinen tunnistus kompuroi pahemman kerran I:n ja l:n tunnistuksessa.

Tämä riippuu jossain määrin fontista (serif on helpompi kuin sans serif, jossa I:llä ja l:llä ei ole välttämättä lainkaan eroa) ja kuvan resoluutiosta/laadusta.

Napakymppi jälleen... Testitekstini sisälsi Sans-fontilla kirjoitetun tekstin.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: Vika/fiba - 21.01.15 - klo:09.41
Tein onnistuneen kokeeni päätteettömällä fontilla (arvaisin arialiksi) printatusta paperista, siinä tosin ei ollut I-kirjaimia haittaamassa.
Pienellä scriptillä saattaisi saada kyseisen toimimaan tämänhetkistäkin paremmin.
Skripti tosiaan olisi tarpeen monisivuisissa papereissa. Toisaalta, olisiko mahdollista integroida Tesseract skannausohjelmaan? Xsanessa on mahdollisuus tallentaa skannaus suoraan tekstiksi. Siinä on oletusohjelmana Gocr. Parametritkin olivat valmiina Xsanen asetuksissa, vaikka gocr ei ollut edes asennettuna koneelle. Yritin vaihtaa asetuksiin Tessractia, mutta ei se ihan suoraan mennyt.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: joonas60 - 21.01.15 - klo:12.27
Toisaalta, olisiko mahdollista integroida Tesseract skannausohjelmaan?

Sellainen löytyy Ubuntun virallisista paketeista eli ocrfeeder. Käyttää juurikin (oletus) tesseract skannausohjelmaa, mutta tesseract-ocr-fin pitää erikseen asentaa.
Asetuksista voi muuttaa käyttämään jotain muuta skannausohjelmaa kuin tesseract.

Edit: Lisäyksiä
Edit: nm oli nähtävästi jo tästä ohjelmasta maininnut
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: villevi - 21.01.15 - klo:12.38
Sovellusvalikoimasta löytyy myös YAGF niminen ohjelma. Pitää vaan asentaa synapticilla tesseract:in kieli(t) mitä aikoo käyttää.
Otsikko: Vs: Skannatun printteritekstin muokkaus
Kirjoitti: kamara - 21.01.15 - klo:13.41
Lisäksi ihan perus xsane pystyy skannaamaan ja lukemaan tekstiksi, kunhan asetuksiin laittaa seuraavaa scriptiä...

xsane-asetukset->OCR: OCR-komento...
Koodia: [Valitse]
/polkuni/ocr.sh

ocr.sh:n tiedot
Koodia: [Valitse]
#!/bin/bash
tesseract -l fin $2 stdout >$4

Tallennus ja muutto ajettavaksi:
Koodia: [Valitse]
chmod 755 ocr.sh

Käyttö omalla vastuulla...