OCR på räkningar

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

  1. speakman

    speakman Teen Droid Medlem

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

    MINA ENHETER

    Fast då ligger uppgifterna fortfarande okrypterade vid mellanlagringen. ;)

    Skriver du i Java eller Python för GAE? Publicera gärna kod när den är något stabil för övrigt. :)
     
  2. pakerfeldt

    pakerfeldt Adult Droid Medlem

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

    MINA ENHETER

    Så fort vi har ett API mot din tjänst så kan vi försöka pusha OCR från android! :)
     
  3. johannilsson

    johannilsson Adult Droid Medlem

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

    MINA ENHETER

    Det sparas i googles moln ja, men litar man inte på den som tillhandahåller tjänsten eller Google så kan man välja att inte använda tjänsten. Det viktiga måste väll vara att skydda kommunikationen samt användarens inloggningsuppgifter, där de sista aldrig någonsin hanteras av just den här tjänsten om man väljer att signa med ett google konto.

    Python i det här fallet. Jag pushar när jag kommer hem från mitt vanliga jobb sen kan ni skratta eller hjälpa till ytterligare :)
     
  4. speakman

    speakman Teen Droid Medlem

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

    MINA ENHETER

    Det jag menar är att det inte borde vara några större problem att kryptera hela datat mellan telefonen och PC:n. GAE-appen behöver ju bara agera relästation, och det finns ingen anledning att lagra meddelanden okrypterade där.

    Men det viktigaste är helt klart att få det att fungera, så kryptering får komma i efterhand helt klart.

    <3 <3
     
  5. pakerfeldt

    pakerfeldt Adult Droid Medlem

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

    MINA ENHETER

    johannilsson,
    Jag har provat din app. Fungerar bra när jag kör enligt ditt exempel i readmen. Men att göra det genom Android var svårare. Främst kanske därför att jag inte har någon erfarenhet av att jobba med Account och AccountManager. Har du det? Jag kopierade mer eller mindre AppEngineClient som du refererade till över twitter. Vid en OCR-träff så ful-instansierar jag en AppEngineClient och skickar in mitt e-postkonto (som finns bland Accounts). När AppEngineClient sedan försöker få fram en authToken så får jag däremot PendingAuthException.
     
  6. johannilsson

    johannilsson Adult Droid Medlem

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

    MINA ENHETER

    Tyvärr tror jag inte att AppEngineClient är kompatibel med devservern rakt av. Auth token historien skiljer sig från devservern mot hur det sen fungerar i produktion. Ska försöka få ihop ett demo ikväll.

    Det är en väldigt väldigt enkel app men bör fungera som en poc till att börja med iaf. Koden ligger här för er som är intresserade, https://github.com/johannilsson/agiro-server
     
  7. pakerfeldt

    pakerfeldt Adult Droid Medlem

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

    MINA ENHETER

    Menar du att jag inte kan använda mitt befintliga google-konto mot devservern? Isåfall kan jag ju inte använda AccountManagern över huvud taget, eller missförstår jag hur det fungerar?
     
  8. johannilsson

    johannilsson Adult Droid Medlem

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

    MINA ENHETER

    Jodå det går fint att köra med sitt vanliga google konto mot devservern, det är responsen som skiljer.

    Om jag nu minns rätt, var rätt länge sedan jag gjorde något liknande mot GAE. Men jag tror att det är något liknande man måste göra mot produktion. Dock hanteras det här internt av AppEngineClient och Android;
    Kod:
    curl [url]https://www.google.com/accounts/ClientLogin[/url] \
      -d Email=EMAIL \
      -d Passwd=PASSWORD \
      -d accountType=HOSTED_OR_GOOGLE \
      -d source=agiro \
      -d service=ah
    Vilket ger ett svar liknande
    Kod:
    SID=DQAAA...
    LSID=DQAAA...
    Auth=DQAAA..
    .
    Man tar sedan resultatet av Auth och lägger i en Auth header liknande
    Kod:
    curl http://agiro.appspot.com/add \
       -d "reference=123456" \
       -H "Authorization: GoogleLogin auth=DQAAA..."
     
  9. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    Johan, finns det någon anledning till att du valde just GAE? Vet att du halvofta brukar prata om google docs. Ett spreadsheet på google docs hade kanske hade varit en bra lösning. Har inte funderat så mycket på det själv, men där kan man ha olika kolumner för olika fält. Andra bra saker hade varit att man inte behöver ha någon central server, så det borde skala bra. Dessutom får användarna historik helt gratis, samt att de i dokumentet kan skapa grafer, anteckning m.m.

    Kanske lite sent påkommet, och det finns säkert nackdelar med spreadsheet också.
     
  10. johannilsson

    johannilsson Adult Droid Medlem

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

    MINA ENHETER

    Tänkte faktiskt på att använda google docs senast idag. Tror att det hade fungerat ganska bra om jag ska vara ärlig, men är det inte ens massa jobbig xml som man måste koka ihop när man lägger in via api:et? :)
     
  11. pakerfeldt

    pakerfeldt Adult Droid Medlem

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

    MINA ENHETER

    Alright, skippade hela auth token-hanteringen i AppEngineClient och nu tar devservern emot mitt OCR-nummer.
     
  12. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    De har ett java api, så från telefonen behöver man inte använda xml om jag fattat rätt. Hur man ska göra i sin chrome extension har jag ingen aning om :)
     
  13. johannilsson

    johannilsson Adult Droid Medlem

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

    MINA ENHETER

    Sweet, om du går in under http://localhost:8080/_ah/admin/datastore så kan du lista alla entities och se om det har kopplats till rätt konto.

    Fick inte riktigt tid att göra något vettigt själv, men om det känns som att det här kan fungera så kan man på allvar börja fundera på ett extension och pusha det till en riktig app engine instans.
     
  14. pakerfeldt

    pakerfeldt Adult Droid Medlem

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

    MINA ENHETER

    Ser så ut!
    Kod:
    	agVhZ2ly...	 11		2011-01-10 21:43:07	12345678	patrik.akerfeldt
     
  15. johannilsson

    johannilsson Adult Droid Medlem

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

    MINA ENHETER

    Snyggt, vill man spara mer data som belopp och konto kanske?
     
  16. pakerfeldt

    pakerfeldt Adult Droid Medlem

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

    MINA ENHETER

    Ja, vi kan läsa ut den interna dokumenttypen också. Du kan väl skapa en placeholder för den också, oavsett om vi använder den eller inte. Det är en två-siffrig nuffra. Har pushat kvällens jobb till: https://github.com/pakerfeldt/aGiro
    Det som är gjort sen sist är typ:

    • Använder Invoice istället för StringDecoder
    • Lagt till AppEngineClient för kommunikation med agiro-server
    • När alla fält är inskannade så skickas OCR-numret till agiro-server (vilket är det enda fält som stöds från servern just nu)
    Min branch kräver just nu att agiro-server snurrar och går att kommunicera med. Annars får man nog något oskyldigt exception gissar jag.
     
  17. johannilsson

    johannilsson Adult Droid Medlem

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

    MINA ENHETER

    Har lagt till document_type och amount till api:et. Amount är jag dock osäker på, men det kan vi reda ut lite senare.

    Har även skapat upp en channel som en scannad invoice automatiskt postas till, borde vara perfekt för ett framtida extension då man själv slipper ligga och polla. Man kan testa det genom att gå in på http://localhost:8080/ och sen under console i Firebug eller i Chrome kolla efter en loggrad liknande ### {"amount": "100", "document_type": "bla", "reference": "123456"} direkt efter att man lagt till något via api:et.
     
  18. Boris

    Boris Infant Droid Medlem

    Blev medlem:
    11 jan 2011
    Inlägg:
    1
    Mottagna gillanden:
    0

    MINA ENHETER

    Hej,
    Såg att C-Pen var nämd som input för detta projekt och tänkte bara tipsa om att det numera finns en app(service) på market som har stöd för C-Pen, än så länge är den gratis(Beta under en period) kommer kosta nån krona efter det.
    Man kan använda den som den är och via en input method få den skannade OCR raden till det fält man har valt i sin app. Man kan även få texten levererad till sin app via callbacks och skippa input method delen.
    Vill ni lägga till support för C-Pen i er lösning så hör av er till mig så kan jag leverera lite exempelkod på hur man kan lyssna på vad som skannats med C-Pen.
     
  19. wulax

    wulax Kid Droid Medlem

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

    MINA ENHETER

    Det låter intressant, men är inget jag vill prioritera just nu. Dessutom har jag ingen C-Pen att testa koden med. Kanske någon annan har möjlighet senare.
    Dessutom, om vi får aGiro att fungera som det ska behövs nog ingen C-Pen. :)
     
  20. plun

    plun Android Medlem

    Blev medlem:
    18 okt 2009
    Inlägg:
    5 628
    Mottagna gillanden:
    520

    MINA ENHETER