Skip to main content

6 posts tagged with "soviet.recipes project"

Technical posts about building and digitizing the soviet.recipes project

View All Tags

OCR Consensus: EasyOCR and Qwen3-VL Agree on 5 of 444 Pages

· 7 min read
Bogdan Varlamov
Bogdan Varlamov
Technologist
OCR Consensus: EasyOCR and Qwen3-VL Agree on 5 of 444 Pages

I diffed the EasyOCR and Qwen3-VL transcriptions of 444 Soviet cookbook pages against each other, and the two engines produced character-for-character identical text on only 5 pages. All 5 are nearly blank (a heading or a page number, 13 to 24 characters each). The plan from the previous post was to treat pages where both engines agree as "probably accurate" and hand-check only the rest. On real content pages that agreement almost never happens, so cross-engine agreement doesn't work as the cheap accuracy filter I hoped for.

Qwen3-VL vs EasyOCR in Docling: 10x Slower, No Boxes

· 7 min read
Bogdan Varlamov
Bogdan Varlamov
Technologist
Qwen3-VL vs EasyOCR in Docling: 10x Slower, No Boxes

Docling's vision-language model pipeline, running the 4B-parameter Qwen3-VL model locally, processed 444 cookbook page images for the soviet.recipes project at a 99.5% success rate. Compared to the earlier EasyOCR run, it gave up every piece of debugging output that run had: no text-region overlays, no per-page confidence score, no reading-order artifacts. It also ran far slower, and Docling still processes one-page image documents one at a time, so the batch took about 26.3 hours.

Running Local LLMs on a Strix Halo Laptop

· 13 min read
Bogdan Varlamov
Bogdan Varlamov
Technologist
Running Local LLMs on a Strix Halo Laptop

An AMD Ryzen AI Max+ 395 laptop with its integrated Radeon 8060S GPU and unified memory can run open-weight models from 4B parameters up to a 120B mixture-of-experts model, no cloud GPU needed. gpt-oss-120b generates around 35-40 tokens per second, and the 20B and 4B models are faster still. That's enough for the soviet.recipes project: this hardware can host a model large enough to attempt vision-language OCR locally.

Wrapping Docling in a Reusable Text Extraction Pipeline

· 11 min read
Bogdan Varlamov
Bogdan Varlamov
Technologist
Wrapping Docling in a Reusable Text Extraction Pipeline

Docling already does most of what a batch text-extraction harness needs: it iterates over documents, swaps OCR backends, isolates per-document errors, and exports structured output. For the soviet.recipes project I wrap it in a thin pipeline so I can put different extraction approaches against each other on the same pages and trust the result. Docling does the extraction, but the wrapper prepares the book's curled and shadowed pages first and puts every engine behind one interface, whether it runs through Docling or bypasses it, so routing and scoring stay independent of which tool produced the text.

Testing Docling OCR on a Soviet Cookbook

· 5 min read
Bogdan Varlamov
Bogdan Varlamov
Technologist
Testing Docling OCR on a Soviet Cookbook

Docling with the EasyOCR engine extracted the Cyrillic text and page structure from a scanned Soviet cookbook, but it dropped text where the pages curved away from the camera. That data loss makes this configuration insufficient on its own for the soviet.recipes project. I tested four sample pages configured for Russian and English, using Kiro.dev to write the script.