space ocr updates!
I launched space ocr here on August 4. This thread is where I will put what I am changing and why.
A commenter with nineteen years in banking software suggested control totals, checking that the numbers add up. I liked it immediately and put it at the top of my list, and then I kept turning it over for a few days and it started to bother me in a way I could not name at first.
What I eventually landed on is that it was pulling space ocr toward being a receipt and invoice product. Receipts and invoices are the example I have been leading with, but they are one use case sitting on top of the thing, not the thing. What the thing does is read characters from an image and verify them by comparison. Two independent passes read the same image, one from a language model and one from a vision engine, and a character level matcher compares them. Where they disagree, the field is flagged rather than resolved by quietly picking a winner. That is the whole of it.
To add up totals I would first have to give fields types, then convert formats, then sum, then compare. Each of those steps is reasonable on its own, and all of them happen after reading is finished. So I think they belong to a layer above, to whatever gets built on space ocr rather than inside it. If arithmetic moves into the verification step, I end up with a document accounting tool that happens to do OCR, and that is not what I set out to make. I could be wrong about this and I am open to being argued out of it, but for now that is where I have put the line.
None of which makes the feedback wasted. Someone asked about row level extraction on multi page documents, and that one is squarely inside what space ocr should be good at. Someone else uploaded seventy genuinely difficult photos, which taught me more than any test set I had put together myself. Those, plus a handful of smaller things from launch week, are what I am actually working on now.
I will post each change here as it lands, including the ones that do not work. If you have a case that breaks OCR, I would rather see it than guess at it.
Replies