OCR på räkningar

Diskussion i 'Appförslag och idéer' startad av Buzz, 21 jul 2010.

  1. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER

    Tack för länken speakman! Där ser man att BG och PGs interna kod skiljer sig åt. Kan vara bra att tänka på.

    wulax, du skrev att du skulle förbättra StringDecoder. Det kanske blir lite dubbelarbete men jag tänkte ge mig på något liknande. Jag har skapat en Invoice-klass som har en decode-funktion för att läsa av strängar och mata in i Invoice-objektet. Har inte pushat något till repot än men hojtar till när jag gjort det så kan vi kodgranska och komma med kommentarer.

    Det ena utesluter inte det andra! Jag har själv haft stora problem med att läsa hela raden på en gång. Med min lösning av Invoice.decode() så kan man tolka hela eller delar av raden. Man bestämmer själv helt enkelt. När Invoice-objektet fått in alla uppgifter (OCR, belopp, checksiffra för belopp och BG-/PG-nummer) så klarmarkeras Invoice-objektet för vidare hantering (skickas till datorn).
     
  2. Kahl

    Kahl Infant Droid Medlem

    Blev medlem:
    28 dec 2010
    Inlägg:
    4
    Mottagna gillanden:
    0

    MINA ENHETER

    Hej!

    Jag tänkte komma med ett förslag för överföring till datorn, om programmet bara kommunicerar åt ena hållet borde det inte behövas någon direkt säkerhet.

    Min tanke är att man använder en liknande funktion som "Send text" i Unified Remote, där man anger en text i ett inmatningsfält som sedan vid tryck på skicka, skickas rakt av till datorn där man på förväg får markera rätt fält.

    Man skulle då i appen kunna ha en inställningsmöjlighet där man anger vad man vill ska skickas. T.ex. för Nordea skulle man kunna ange
    Kod:
    <konto><tab><tab><belopp><tab><tab><tab><ocr>
    har man en annan bank får man själv räkna tabbar och ordning och ange i appen. Om enter-tryck (och iaf. för nordea shift-tab) också finns som variabler kan man helautomatisera det så man bara fotar alla fakturor och sedan går till signera sidan på datorn.

    //Kahl
     
    Last edited: 9 jan 2011
  3. wulax

    wulax Kid Droid Medlem

    Blev medlem:
    7 jul 2010
    Inlägg:
    61
    Mottagna gillanden:
    7

    MINA ENHETER

    Det låter mycket bättre än vad jag tänkte göra. Fixa det du istället.

    Jag skissade upp en liten modell över hur programmet skulle kunna fungera:

    [​IMG]

    Det vore nog bäst om programmet var så automatiskt som möjligt. Detta är det enklaste gränssnittet jag kunde komma på just nu i alla fall. Sedan tillkommer väl någon aktivitet för olika inställningar, kanske:
    typ av anslutning: wifi eller bluetooth
    kontrollnivå: kontrollsiffra och längdsiffra
    blixt/led: på/av
     
  4. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER

    Ja, jag hade något liknande i åtanke. Det borde ju bli väldigt lätt att lägga in stöd för alla bankerna förutsatt att alla fält går att mata in på samma webbsida.
     
  5. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER

    Nu har jag pushat ett utkast på Invoice-klassen: https://github.com/pakerfeldt/aGiro...2b/src/com/agiro/scanner/android/Invoice.java
    Har javadoc som beskriver det som möjligtvis är oklart. Blir lite rörigt att läsa det direkt i källan eftersom jag använder lite html-taggar för snyggare formattering.

    Jag har ännu inte jackat in den i resten av din kod, wulax. Men i princip går det till som så att man börjar med att skapa ett Invoice-objekt. Sedan skannar man med kameran och för varje skanning som resulterar i en sträng så kör man Invoice.decode(). När man har skannat OCR-nummer, belopp samt BG/PG-nummer så kommer Invoice.isComplete() att returnera true och man kan gå vidare med att skicka datat till datorn. Invoice.decode() klarar av att ta både ett eller flera fält samtidigt. Så i teorin kan man läsa in allting med en Invoice.decode() om den skannade bilden inkluderar alla fält.
     
  6. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER


    Mycket bra skiss! Jag anpassade något för att passa bättre in med Invoice-begreppet. Vad tror du? (Skippade vissa boxar kring ritning av gui:t av lathet).
    [​IMG]
     
  7. wulax

    wulax Kid Droid Medlem

    Blev medlem:
    7 jul 2010
    Inlägg:
    61
    Mottagna gillanden:
    7

    MINA ENHETER

    Jag läste igenom din klass Invoice lite hastigt. Bra jobbat! Mycket snyggare än min lösning. :P Ska bli intressant att testa den när du jackat in den.

    Din uppdatering av skissen ser också bra ut. Det kanske är onödigt att försöka stödja sifferserier som inte innehåller en kontrollsiffra? Alla mina räkningar verkar ha en sådan. Jag har dock för mig att iGiro till iPhone stödjer det av någon anledning.

    Kan uppdatera skissen sedan. Jag använde för övrigt Dia för att rita den. Ganska trevligt program.
     
  8. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER

    Menar du kontrollsiffra på beloppet? Ja, det kanske man ska stödja om det är tillåtet. Har inte heller sett faktura utan kontrollsiffran iofs.

    Vad gäller flödesdiagrammet. Vill man verkligen skanna alla fält innan man skickar de till datorn? Smidigast vore väl ändå om fältet skickades så fort det lästes in. Eller egentligen kanske man vill ha stöd för både och. Läsa in alla fält före sändning vill man typiskt göra i Kahls fall där man skickar typ:
    HTML:
    <konto><tab><tab><belopp><tab><tab><tab><ocr>
    Nåväl, det kanske är finlir i slutet. Vi är ju inte riktigt där ännu.
     
  9. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER

    I början verkar aGiro automatiskt skanna efter bild. Men så fort den hittar en träff så verkar den sluta och man måste klicka på skanna-knappen. Detta är känt eller? Man vill ju typiskt att den skannar kontinuerligt.
     
  10. wulax

    wulax Kid Droid Medlem

    Blev medlem:
    7 jul 2010
    Inlägg:
    61
    Mottagna gillanden:
    7

    MINA ENHETER

    Ja, jag känner till det. Kommer inte ihåg varför jag inte fixade det. Naturligtvis ska den fortsätta skanna.

    Angående vad jag skrev tidigare, jag tror jag menade längdsiffra inte kontrollsiffra, men glöm det. Jag tänkte nog inte igenom mitt resonemang riktigt. Börjar bli trött. Måste sova.
     
  11. speakman

    speakman Teen Droid Medlem

    Blev medlem:
    15 apr 2010
    Inlägg:
    262
    Mottagna gillanden:
    13

    MINA ENHETER

    Jag tycker det låter lite för oprecis i jämförelse med en chrome extension? Med den mellanlagrade native-appen hade det underlättat att skriva för e.x. firefox också.
     
  12. gust

    gust Baby Droid Medlem

    Blev medlem:
    29 sept 2010
    Inlägg:
    15
    Mottagna gillanden:
    0

    MINA ENHETER

    Hej!

    Jag tänkte göra en egen sån här app jag också men inser att jag inte kommer ha ork/tid. Började dock i andra änden än er. Jag gjorde som så att appen på telefonen ansluter till en webservice som ligger på en server och skickar dit OCR numret. Sen gjorde jag ett plugin i Chrome som anropar en annan webservice som ger OCR nummer och får upp det i pluginet.

    Sen kan man klicka i pluginet för att pasta i markerat fält på hemsidan, dock fick jag det inte att funka på handelsbanken, verkar som om det är nån säkerhetsgrej. Men OCR numret står även i pluginet så man kan klistra in det manuellt. Som säkerhet och identifier tänkte jag att man genererar ett ID i appen på första uppstart som man sedan skriver in i pluginet i Chrome.

    Kan ladda upp källkoden till allt/hjälpa till att vidareutveckla om det verkar intressant :)
     
  13. wulax

    wulax Kid Droid Medlem

    Blev medlem:
    7 jul 2010
    Inlägg:
    61
    Mottagna gillanden:
    7

    MINA ENHETER

    Det tycker jag verkar intressant. Jag gillar inte tanken på att skicka allt till en webservice som inte ligger på en lokal server. Verkar inte så säkert. Men ladda gärna upp koden till GitHub, vore intressant att se den. Hjälp att vidareutveckla är välkommet för min del i alla fall.

    Idag när jag får tid ska jag skriva om bildanalysklassen BitmapParser lite så att den skapar ett objekt så man kan kalla på resultatsträngen, debugbilden, ursprungsbilden, ändra lite inställningar och annat enklare. Ska också döpa om den till något vettigare, typ ScanResult.
     
  14. gust

    gust Baby Droid Medlem

    Blev medlem:
    29 sept 2010
    Inlägg:
    15
    Mottagna gillanden:
    0

    MINA ENHETER

    Jaa kanske inte säkraste men om nån får tag i OCR numret, vad ska de göra? betala ens räkning? :P
    sen skulle man ju kunna erbjuda möjligheten att ställa in vilken server man vill skicka till och skicka med servermjukvara till datorn.
     
  15. Zooklubba

    Zooklubba Android Medlem

    Blev medlem:
    10 jul 2010
    Inlägg:
    6 448
    Mottagna gillanden:
    2 199

    MINA ENHETER

    Ska man långdra det kan ju någon få reda på medlemskap/vad man köper ifrån/prenumerationstjänster och sådant man kanske betalar som man inte vill att andra ska veta.

    Lokal server låter smartast. Kanske fråga Reconnn (UnifiedRemote) eller liknande då de gör liknande? Dvs styr saker med mobilen och har en servermjukvara på datorn.
     
  16. speakman

    speakman Teen Droid Medlem

    Blev medlem:
    15 apr 2010
    Inlägg:
    262
    Mottagna gillanden:
    13

    MINA ENHETER

    UnifiedRemote styr inte datorn - den styr Windows. En PC-applikation som ska emulera mus och tangentbord kan komma bli väldigt komplext att porta till andra plattformar.

    En lösning med 1 st. native-app (för porterbarhet) och 1 st. extension till webbläsare skulle göra hela paketet flexibelt på alla plattformar.
     
  17. Zooklubba

    Zooklubba Android Medlem

    Blev medlem:
    10 jul 2010
    Inlägg:
    6 448
    Mottagna gillanden:
    2 199

    MINA ENHETER

    Haha, just ja. Tänkte inte så långt att det är mer än till Windows. Får väl be om ursäkt för min dumhet.
     
  18. johannilsson

    johannilsson Adult Droid Medlem

    Blev medlem:
    23 jun 2009
    Inlägg:
    577
    Mottagna gillanden:
    8

    MINA ENHETER

    Jag har även skrivit en enkel serverdel. Det är simpel webbapp för app engine, för att lägga till och lista meta data krävs att man är inloggad och via apiet signar requesten med ett google konto. Kvar är att göra ett extension som lyssnar på senast scannade kod, min tanke där är att nyttja app engines channel api. Pushar koden ikväll, kanske kan sys ihop med gusts extension?
     
  19. speakman

    speakman Teen Droid Medlem

    Blev medlem:
    15 apr 2010
    Inlägg:
    262
    Mottagna gillanden:
    13

    MINA ENHETER

    Med GAE så kan man förstås knyta ihop både sin lur och sin PC med sitt Gmail-konto. Smidigt!

    Och är man rädd om informationen som skickas, så är det ju knappast några svårigheter att kryptera den mellan Android och PC:n.
     
  20. johannilsson

    johannilsson Adult Droid Medlem

    Blev medlem:
    23 jun 2009
    Inlägg:
    577
    Mottagna gillanden:
    8

    MINA ENHETER

    Ja, det är min tanke med. Har haft samma upplägg tidigare när jag implementerat C2DM, blir väldigt enkelt för användaren. GAE stödjer ssl med om man så vill.