[{"data":1,"prerenderedAt":319},["ShallowReactive",2],{"project-42443022":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":42,"post_text":44,"what":45,"said":66,"maker_in_thread":151,"shape":162,"grid":167,"attempts":281,"same_week":282,"maker_shows":43,"maker_hidden":311,"reader_version":312,"card":313},"42443022","Boislisle Saint-Simon Memoirs OCR","Adventures in OCR","title","Show HN: Adventures in OCR","https:\u002F\u002Fblog.medusis.com\u002F38_Adventures+in+OCR.html","blog.medusis.com","bambax",1734454854,2024,126,45,684,3515,20,"notable","learning_science","ocr of historical texts","web_app",[24,25,26,27,28],"ocr","saint-simon memoirs","footnotes","historical texts","boislisle edition","curious",0.103,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,11,2,0,16,{"idea":38,"performance":39,"execution":40},{"positive":35,"critical":35},{"positive":34,"critical":35},{"positive":41,"critical":35},1,[35,35,32,35,35,35,35,32,35,32,35,32,35,35,35,32,35,35,35,35,35,35,32,32,43,35,32,32,35,32,35,35,32,35,43,35,32,43,35,32],5,"Hello HN!\n\nIn a recent \"Ask HN: What are you working on?\" thread, I mentioned I was working on OCRing a large book:\n\nhttps:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=41971614\n\nThe post generated some interest so I thought I would keep HN posted.\n\nThe book is Saint-Simon’s Memoirs -- an invaluable historical account of the French court under Louis XIV, full of wit, sharp observations, and of incredible literary value. I'm OCRing the edition of reference made between 1879-1930, that contains a lot of comments and footnotes: 45 volumes, ~27,000 pages.\n\nHere's a link to a blog post that describes the techniqu",{"problem":46,"audience":52,"pricing":52,"motivation":53,"time_to_build":52,"stack":57,"openness":64,"stage":65,"team_size":64},{"value":47,"source":48,"evidence":49},"Scanned multi-volume historical book has footnotes and layout that OCR mangles; reviewing pages is slow","maker",[50],{"id":51},"post",null,{"value":54,"source":48,"evidence":55},"Making the important French court memoirs available as usable text",[56],{"id":51},[58],{"value":59,"source":48,"evidence":60},"Google Vision OCR",[61],{"id":62,"by":11,"text":63},"42446311","Well, in my experience Google Vision is far, far ahead of Tesseract.","unknown","beta",{"praise":67,"objections":80,"requests":101,"questions":112,"alternatives":117},[68],{"value":69,"source":70,"evidence":71},"Interesting project and hard OCR problem","commenter",[72,76],{"id":73,"by":74,"text":75},"42445382","gregschlom","\"A very crude method would be to remove the last line every 16 pages but that would not be very robust if there were missing scans or inserts, etc. I prefer to check every last…",{"id":77,"by":78,"text":79},"42446433","lassenordahl","OCR to original structure is a really fun problem! I did something similar in an internship for newspapers pre-LLM Vision models, and it ended up being a bunch of interval…",[81,95],{"value":82,"source":70,"evidence":83},"Footnote and zone identification is hard for OCR and LLMs alike",[84,88,91],{"id":85,"by":86,"text":87},"42443131","complexworld","Getting the footnotes right is going to be really tricky. Sometimes I couldn't even read the superscript numbering on the original scans. And that was after zooming in to the…",{"id":89,"by":11,"text":90},"42449899","I just tested Gemini 1.5 Flash (interactively on Google AI Studio) and the results are far from acceptable. OCR seems good, on par with Google Vision. But the footnotes are not…",{"id":92,"by":93,"text":94},"42448364","richard_todd","Yes I periodically try to get scanned images of Medieval Latin and Hebrew books ocr’d and translated by Gemini and ChatGPT… sometimes the results are amazing, but you have to…",{"value":96,"source":48,"evidence":97},"Alternative OCR tools produced poor results on this book",[98],{"id":99,"by":11,"text":100},"42456036","Thanks, but I'm sorry to say, the result is... bad. It invents words (\"rusticas\" in the second line of the title of the output, isn't anywhere in the source file -- it's not even…",[102,106],{"value":103,"source":70,"evidence":104},"EPUB edition",[105],{"id":85,"by":86,"text":87},{"value":107,"source":70,"evidence":108},"Crowdsourced corrections interface",[109],{"id":110,"by":74,"text":111},"42445411","For the human review part: maybe crowdsource it? Make the book available for reading online, with a UI to submit corrections (Wikipedia-style).",[113],{"value":114,"source":70,"evidence":115},"How were missing scans and signature marks handled",[116],{"id":73,"by":74,"text":75},[118,129,144],{"value":119,"source":70,"evidence":120},"Gemini or other vision LLMs",[121,125],{"id":122,"by":123,"text":124},"42444984","wll","Use a ~SoTA VLM like Gemini 2.0 Flash on the images. It’ll zero-shot de-hyphenated text in semantic HTML with linked footnotes.",{"id":126,"by":127,"text":128},"42457849","ajcp","- There is no reason it should take 10-20 seconds per page. In my experience with complex documents of 20-30 pages it takes 3-4 seconds. - Please message me for more info if you…",{"value":130,"source":70,"evidence":131},"Abbyy, Surya, Tesseract, LLMWhisperer",[132,136,140],{"id":133,"by":134,"text":135},"42446071","throwaway81523","You could upload the books to the Internet Archive and let their OCR pipeline take a try. It is (or at least was) written around Abbyy. Results weren't great but they were a…",{"id":137,"by":138,"text":139},"42469205","bondeau","I’ve used Surya (https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Fsurya) before. It is very good (on par with Google Vision, potentially better layout analysis), but yours is a challenging use…",{"id":141,"by":142,"text":143},"42447643","constantinum","> The \"best\" models just made stuff up to meet the requirements. They lied in three ways: > The main difficulty of the is project lies in correctly identifying page zones;…",{"value":145,"source":70,"evidence":146},"ScanTailor",[147],{"id":148,"by":149,"text":150},"42445488","pronoiac","Oh wow! I've worked on turning PAIP (Paradigms of Artificial Intelligence Programming) from a book into a bunch of Markdown files, but that's \"only\" about a thousand pages long,…",{"comments":152,"answered":153,"key":154},10,4,[155,158,161],{"id":156,"text":157},"42446155","You are right that the quality of the scans is paramount! Unfortunately I don't have access to the physical books and have to work with the scans as they are (they're not good).…",{"id":159,"text":160},"42445167","I will try that, thanks.",{"id":99,"text":100},{"commenters":163,"max_depth":164,"maker_replies":152,"first_comment_mins":165,"lifespan_hours":166},24,6,14,140,[168,170,172,176,179,182,185,187,189,192,194,198,200,203,205,209,210,214,216,219,221,224,226,227,230,233,235,238,241,243,246,247,249,250,253,256,257,259,263,265,267,268,270,274,278],[148,35,35,169,149,35],"commenter\u002Fneutral\u002Fdocs",[156,35,35,171,11,41],"maker\u002Fneutral\u002Fexecution",[173,35,32,174,175,35],"42447808","project\u002Fneutral\u002Fidea","jfil",[177,35,35,178,149,35],"42448848","commenter\u002Fneutral\u002Fexecution",[180,35,35,181,149,35],"42464205","other\u002Fneutral\u002Fnone",[183,35,35,178,184,35],"42448649","2Gkashmiri",[186,35,35,178,149,35],"42452467",[188,35,35,178,184,35],"42494108",[190,41,32,174,191,35],"42444781","ksampath02",[159,41,35,193,11,41],"maker\u002Fpositive\u002Fnone",[195,34,32,196,197,35],"42455448","project\u002Fmixed\u002Fperformance","eigenvalue",[99,34,35,199,11,41],"commenter\u002Fcritical\u002Fperformance",[201,34,32,202,197,35],"42456596","maker\u002Fneutral\u002Fnone",[77,32,35,204,78,35],"other\u002Fneutral\u002Fidea",[206,32,35,207,208,35],"42446765","commenter\u002Fneutral\u002Fidea","aziaziazi",[133,153,35,204,134,35],[211,153,32,212,213,35],"42446235","project\u002Fneutral\u002Fnone","zozbot234",[215,153,35,174,11,41],"42446341",[217,153,35,204,218,35],"42447013","cdrini",[62,153,35,220,11,41],"maker\u002Fneutral\u002Fperformance",[222,153,35,181,223,35],"42447603","cxr",[225,153,35,181,149,35],"42464298",[141,43,35,204,142,35],[228,43,35,229,11,41],"42450014","commenter\u002Fcritical\u002Fidea",[231,164,32,174,232,35],"42446069","TacticalCoder",[85,234,32,174,86,35],7,[236,234,35,237,11,41],"42443419","maker\u002Fneutral\u002Fidea",[73,239,43,240,74,35],8,"maker\u002Fpositive\u002Fexecution",[242,239,35,171,11,41],"42446056",[137,244,32,245,138,35],9,"project\u002Fneutral\u002Fperformance",[110,152,32,174,74,35],[248,152,35,204,223,35],"42447653",[122,33,32,174,123,35],[251,33,35,252,11,41],"42445244","project\u002Fcritical\u002Fperformance",[254,33,35,255,127,35],"42446367","commenter\u002Fneutral\u002Fperformance",[89,33,35,252,11,41],[258,33,32,202,123,35],"42449977",[260,33,35,261,262,35],"42452868","other\u002Fneutral\u002Fperformance","staticman2",[126,33,43,264,127,35],"project\u002Fpositive\u002Fperformance",[266,33,35,181,127,35],"42457881",[92,33,32,196,93,35],[269,33,43,264,232,35],"42446092",[271,272,35,181,273,35],"42449956",12,"fschuett",[275,276,35,181,277,35],"42457924",13,"joeevans1000",[279,165,32,202,280,35],"42460359","lproven",[],[283,288,292,297,302,307],{"id":284,"name":285,"points":286,"category":287},"42405046","Velofuso",797,"hardware",{"id":289,"name":290,"points":291,"category":20},"42398471","Quantus",279,{"id":293,"name":294,"points":295,"category":296},"42424508","SmartHome",268,"games",{"id":298,"name":299,"points":300,"category":301},"42417330","Buzee",229,"productivity",{"id":303,"name":304,"points":305,"category":306},"42399701","Kubernetes Spec Explorer",216,"dev_tools",{"id":308,"name":309,"points":310,"category":20},"42416258","Chord Nebula",215,false,"v2",{"id":314,"name":5,"line":6,"ai":311,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":315,"top":18,"kw":316,"maker":11,"domain":10,"tier":19,"attempts":35,"strip":317,"url":9,"mix":318,"praise":69,"objection":82,"sub":21},42443022,0.1,[24,25,26,27,28],"0030000303030003000000335033030030503503",[32,33,34,35],1794036665950]