Posts Tagged ‘database’

Massadigitointia tekstintunnistuksella: 23820 pahvikorttia YLEn tietokantaan

Tämä keikka olikin melkoinen – sain käyttää kaikkia oppejani mitä olin TKK:lla oppinut. Koodin vääntö ja optimointi on oma lukunsa, mutta algoritmien kehittely se vasta onkin jotain.

Sattumalla ei ollut tässä keikassa mitään sijaa. Eksyin Digiwikin kautta syksyllä 2012 BAAC:in konferenssiin.

Hinkusin sen yhteydessä tietysti joka exculle (utelias olen aina ollut), ja kun näin nämä pahvikortit laatikoissaan niin johan pomppasi! Vielä 2010-luvulla YLE:llä on käytössä pahvikortteja, mistä kaivavat LP-levyjensä tietoja, tai noh, siis jos ehtivät.. .,)

Esitin heti tuossa yhteydessä, että eikös nuo pitäisi digitoida ja samantien OCR:tä (Optical character recognition, optinen hahmontunnistus; muuttaa valokuva tekstiksi, siis *hakukelpoiseksi* tekstiksi) nykypäivän malliin? Olivat kuulemma aiemmin kyselleet tätä parista paikasta eivätkä vastaukset olleet vakuuttaneet heitä, päinvastoin. No, minä siihen, että anna samantien 50 korttia tähän käteen, niin testaan tätä hommaa ihan ilman (korvausta). En saanut kortteja heti enkä postissa, ja asia jäi silleen.

Viiden kuukauden päästä sain yllättäen sähköpostia, ja siitä homma eteni. Sain peräti kaksi (2) ilmaista lounasta Ylen Ison pajan ravintelissa; hyvää oli, mutta kuten aina, annos vähän liian pieni. Ensimmäisen palaverin jälkeen menin soittamaan heidän Hellas -flyygeliaan, ja aplodejakin tuli. ,)

Kuvittelin ensinnä, että pääsisin tämän keikan tehneenä hommassa heti eteenpäin, koodia siis kierrättäen. No, ei siinä nyt kyllä ihan niin käynyt..

Mutta vissiin ihan asiasta hassun hattuni saaneena en ihan tumpelo olekaan. Kolmessa viikossa sain täydellisesti (miltei yli)opetettua OCR-softan ja paljon muutakin aikaan. En tietty tehnyt välillä mitään muuta, hyvä kun edes maltoin nukkua saati syödä. Unissani mietin kovastikin miten tehdä älykästä algoritmiä.

Sopimuksen hiominen olikin sitten vaikenta, missä menikin useita kuukausia, kesälomienkin satuttua kohdalle. Asiasta päästiin kuitenkin lopulta yhteisymmärrykseen ja suuret esivalmisteluni eivät onneksi menneet kankkulan kaivoon.

Pääsin käyttämään kehittämiäni tekoäly- ja konenäköalgoritmejäni (ja muilta lainattuja, mutta täysin julkisia tietysti) toden teolla. Vitsi kun oli siinä, että pahvikortit sisälsivät paljon tietoa, mikä ei ollut joka kortissa samassa paikassa, niin että kortti piti jakaa kahdeksaan alueeseen, ja joka alue OCR:tä erikseen. Jos digitoitu kortti olisi OCR:ttu vain sellaisenaan, lopputuloksena kaikki tiedot menisivät per rivi yhteen pötköön, mistä ei kukaan eikä mikään saisi mitään tolkkua.

Kaikkien, jopa tekijän itsensä, yllätyksenä homma toimi kuin buikki. Ottaen erityisesti huomioon alkuperäisaineiston laadun, vaihtelevuuden ja kunnon, ei tästä monikaan olisi saanut parempaa, mutta helposti huonompaa. 🙂

Lopputuloksena oli tekstitiedostojen lisäksi excel-tiedostot, jossa ”find all” haulla saa vaikka mitä haettua. YLE haluaa tiedot tietenkin heidän METRO -tietokantaansa, ja kappalekohtaisesti, joten hommaa jäi vielä heillekin. En nyt ihan kaikkea liian halvalla suostu tekemään. 🙂 Innolla jään odottamaan, mitä heidän koodarinörttinsä saa(vat) aikaan. ,)

Tehty Inotec Scamax 2600 -dokumenttiskannerilla, ja nyt vain muutamalla tietokoneella, mitä talosta löytyy ja omilla ja vähän lainatuilla koodeilla, 09/2013 – 02/2014.

Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014
Massadigitointia tekstintunnistuksella: 23820 pahvikorttia tietokannaksi Yleisradiolle, 02/2014