Sudoku Flow

Co jsme zjistili při měření naší čtečky sudoku z fotografií

Aktualizováno 5. listopadu 2026

Co počítáme jako správně přečtené

Úloha je přečtena správně, jen pokud je správně všech 81 políček: jedna chybná číslice dává jinou úlohu. Proto počítáme celé úlohy, ne políčka. Obě čísla mohou vyprávět velmi odlišné příběhy, jak ukazuje tato stránka: na fotografiích tištěných úloh teď čtečka přečte správně 98,9 % políček, a přesto se podíl celých úloh téměř nepohnul, protože většina chybných políček připadá na několik obtížných obrázků.

Počítáme také nejnebezpečnější chybu: úlohu přečtenou chybně, která přesto má právě jedno řešení. Skutečné sudoku má jedno řešení, takže přečtení, které nemá žádné řešení nebo jich má mnoho, se odhalí okamžitě. Chybná úloha s jedním řešením vypadá v pořádku, a proto řešitel označí každé políčko, kterým si nebyl jistý, a před řešením vás požádá, abyste je porovnali se svou úlohou.

S 200 obrázky je výsledek přesný jen do určité míry. U hlavních výsledků uvádíme 95% rozpětí (Wilsonův interval): 89,5 % z 200 obrázků znamená, že skutečná míra leží nejspíše mezi 84,5 % a 93,0 %.

Obrázky, na kterých jsme testovali

Začali jsme se dvěma otevřenými datovými sadami. Datová sada Sudoku Image Recognition od Lexski (CC0) má 1 400 obrázků, většinou snímků obrazovky a fotografií, které lidé sdíleli na internetu: aplikace ve všech stylech, tmavé motivy, poznámky tužkou, úlohy napůl vyřešené na papíře. Datová sada, kterou vytvořili Baptiste Wicht a Jean Hennebert (CC BY 4.0), obsahuje sudoku z novin vyfotografovaná telefony, některá z nich ručně dořešená perem.

Než jsme cokoli změnili, odložili jsme stranou tři testovací sady: 200 obrázků ze sady Lexski, 40 fotografií z novin a 40 novinových úloh dořešených rukou. Netrénovali jsme na nich a během práce jsme se na ně nedívali. Každé rozhodnutí padlo na 200 jiných obrázcích ze sady Lexski, tedy na ladicí sadě, a testovací sady byly přečteny jednou, na konci.

Odkud jsme začínali

První verze z 31. října přečetla přesně 101 z 200 obrázků ze sady Lexski, 34 ze 40 fotografií z novin a žádnou ze 40 dořešených úloh. Většina jejích potíží vznikala ještě před číslicemi. Za hrací plochu považovala největší zhruba čtvercový útvar inkoustu a na snímku obrazovky tento útvar často zahrnuje i záhlaví nebo číselnou klávesnici, zatímco tenké šedé čáry tmavého motivu zcela přehlédne. Na ladicí sadě umístila mřížku správně jen ve 118 případech z 200.

Co jsme měnili, krok za krokem

Každý řádek je jedna změna a číslo udává, kolik z 200 ladicích obrázků bylo poté přečteno přesně. Poslední tři řádky patří druhému kolu.

ZměnaLadicí obrázky přečtené přesně (z 200)
První verze, 31. října99
Mřížka hledaná podle čar: deset rovnoměrně rozložených čar v každém směru129
Mřížka posuzovaná vedle sebe; vyzkoušen posun o jedno políčko136
K hledání mřížky využity i slabé vlasové čáry138
Políčka vyříznutá celá; číslice naučené na skutečných políčkách161
Malá síť mapuje, kde je hrací plocha162
Čáry sledované tam, kde se stránka ohýbá163
Lepší síť pro číslice, poznámky tužkou jako samostatná třída173
Průměr tří sítí pro číslice177
Opatrné pravidlo jednoho řešení; dokončené plochy čtené jako celek177
Druhé kolo: fotografie v plné velikosti půlené před zmenšením178
Druhé kolo: krátký, slabý inkoust považován za poznámku tužkou179
Druhé kolo: o fotografiích na boku rozhodují všechny tři sítě179

Většinu zlepšení přinesly tři změny. Mřížka se nyní hledá podle svých čar: každý odhad hrací plochy se posune na deset rovnoměrně rozložených čar v každém směru, odhady se posuzují vedle sebe a hlas má i malá síť, která mapuje, kde se hrací plocha nachází. Každé políčko se vyřízne celé, takže poznámka tužkou zůstane malá ve svém rohu a světlá číslice na tmavé dlaždici vypadá jako inkoust na papíře. A sítě pro číslice se učily na skutečných políčkách vyříznutých z trénovacích obrázků sady Lexski, s poznámkami tužkou jako samostatnou třídou. Každé políčko teď čtou tři malé sítě trénované odděleně a jejich odpovědi se průměrují, protože chybují na různých políčkách.

Dokončená úloha dostane pomoc navíc. Když hrací plocha obsahuje 79 číslic nebo více, čtečka hledá nejpravděpodobnější úplnou mřížku, v níž každý řádek, sloupec a blok obsahuje 1 až 9. Při čtení políčko po políčku vyšlo přesně jen 7 ze 40 ručně psaných testovacích úloh; při čtení jako dokončené sudoku všech 40.

Druhé kolo přidalo tři menší změny. Fotografie z telefonu v plné velikosti se před zmenšením postupně půlí, takže tenké čáry a tahy tužkou se zprůměrují, místo aby se přeskočily. Políčko, jehož inkoust je zároveň mnohem kratší a mnohem slabší než jisté číslice na hrací ploše, se považuje za pravděpodobnou poznámku tužkou. A o natočení fotografie pořízené na bok rozhodují všechny tři sítě místo jedné.

Snímek obrazovky sudoku v tmavém motivu s poznámkami tužkou a barevnými číslicemi, narovnaná hrací plocha s průsečíky čar vyznačenými zeleně, 81 políček jako malé obrázky a přečtená čísla modře bez poznámek tužkou
Snímek obrazovky v tmavém motivu, který jsme vygenerovali: narovnaná hrací plocha s nalezenými průsečíky čar; 81 políček tak, jak je vidí sítě; a co bylo přečteno. Poznámky tužkou jsou vynechány.

Co nepomohlo

I tyto změny jsme změřili na ladicí sadě a vynechali jsme je:

  • Větší síť pro číslice: 59 000 vah místo 42 000 přečetla o jeden ladicí obrázek víc a v prohlížeči běžela 3,8krát pomaleji.
  • 3 000 vygenerovaných snímků obrazovky aplikací s poznámkami tužkou a tmavými motivy: stejné skóre s nimi i bez nich.
  • Čtení barevně místo v odstínech šedi, aby červené pero bylo stejně tmavé jako černý inkoust: o dva ladicí obrázky víc, ale ručně psané číslice se četly hůř.
  • Deformace trénovacích číslic, aby více připomínaly rukopis: rukopis se četl hůř.
  • Umožnit pravidlu jednoho řešení měnit více políček: více správně přečtených úloh, ale také více nebezpečných chybných úloh s jedním řešením.
  • Přetrénování tří sítí na nových datech nebo použití čtyř či šesti sítí: rozdíl v mezích šumu, takže zůstaly původní sítě.
  • Považovat okraj obrázku za okraj hrací plochy u ploch oříznutých rámem snímku: kolik obrázků se získalo, tolik se ztratilo.

Výsledky na prvních testovacích sadách

Úlohy přečtené přesně v každé testovací sadě, první verzí a čtečkou v současné podobě:

Testovací sada31. říjnaNyní
Snímky obrazovky a fotografie sdílené online (Lexski)Obrázky: 20010150,5 %17989,5 %
Fotografie z novin (Wicht a Hennebert)Obrázky: 403485,0 %40100,0 %
Novinové úlohy dořešené rukou (Wicht a Hennebert)Obrázky: 4000,0 %40100,0 %

Na obrázcích ze sady Lexski se čtečka zlepšila z 50,5 % na 89,5 % (84,5 % až 93,0 %) a počet úloh přečtených chybně, a přesto s jedním řešením, klesl ze 7 na 4. Ve třech z těchto čtyř případů je jediná číslice navíc právě ta, která na dané místo patří, takže úloha stále vede ke správnému řešení; čtvrtým případem je zřetelně vytištěná číslice 1, kterou datová sada ponechává prázdnou. Ze 179 přečtených úloh jich 177 bylo hotovo na konci prvního kola. Poslední dvě přibyla ve druhém kole, poté co jsme prostudovali, co selhalo, takže tato sada už není nedotčená.

Čtyřicet ze čtyřiceti zní dokonale, ale 40 obrázků dokáže ukázat jen to, že skutečná míra je vyšší než zhruba 91 %. A kontrola, kterou jsme měli provést jako první: čtyři ze 40 testovacích fotografií z novin jsou také v trénovací sadě této datové sady, dvě z nich shodné pixel po pixelu. Bez nich 36 z 36.

Nový test: 200 fotografií, které žádná verze neviděla

Do té doby už byly první testovací sady přečteny a jejich selhání prostudována, takže nám už nemohly říct, jak si čtečka vede na obrázcích, které nikdy předtím neviděla. Prohledali jsme Hugging Face, Kaggle, GitHub, Zenodo, Figshare a AIcrowd a hledali další fotografie sudoku s popisky. Většinu sad tvořily generované hrací plochy, jednotlivé číslice nebo kopie fotografií ze sady Wicht. Tři kolekce na platformě GitHub obsahovaly skutečné fotografie s popisky, všechny s tištěnými úlohami: 100 fotografií otevřené knihy úloh (NatalijaPetric/SudokuDataset), 80 fotografií převážně z novin (mineshpatel1/sudoku-solver, po vyřazení 49 snímků, které jsou přímo fotografiemi ze sady Wicht, a jedné kopie) a 20 tištěných listů z projektu kurzu počítačového vidění na Univerzitě v Bukurešti (danielsociu/SudokuRecognition).

Žádná ze tří kolekcí neuvádí licenci, proto jsme je použili pouze k měření: nikdy jsme na nich netrénovali a nejsou zde zobrazeny. Seznam obrázků byl stanoven a uložen před jakoukoli změnou, vybrán pevným pravidlem podle hashů souborů a popisků, a obrázky zůstaly neotevřené až do poslední změny druhého kola. Potom je každá verze čtečky přečetla jednou. Tabulka uvádí počet přesně přečtených úloh.

Zdroj31. říjnaPrvní koloNyní
Otevřená kniha úloh (NatalijaPetric)Fotografie: 1007979,0 %7676,0 %7878,0 %
Převážně noviny (mineshpatel1)Fotografie: 806581,3 %6885,0 %6986,3 %
Tištěné listy (kurz Univerzity v Bukurešti)Fotografie: 2020100,0 %20100,0 %20100,0 %
Všech 200Fotografie: 20016482,0 %16482,0 %16783,5 %

Na tištěných úlohách, které čtečka nikdy neviděla, změnila veškerá práce obou kol jen málo. První verze jich přesně přečetla 82,0 %, současná 83,5 % (77,7 % až 88,0 %): 14 úloh získala a 11 ztratila. Zlepšila se ale políčka: správně se přečte 98,9 % místo 94,2 % a mřížka se najde na každé fotografii místo na 195 z 200. Úlohy přečtené chybně, a přesto s jedním řešením: dříve 5, nyní 6.

Ztráty mají jasnou příčinu. Aby čtečka zvládla poznámky tužkou a tmavé motivy, každé políčko se nyní vyřezává celé a počítá se i slabý inkoust. Na tenkém novinovém papíře prosvítá rub stránky, slabě a zrcadlově, a nová čtečka tyto stíny čte jako číslice; první verze se dívala jen na největší útvar inkoustu v políčku a nikdy je neviděla. Na prohnutých stránkách knihy může vnější čára hrací plochy nebo čára bloku spadnout dovnitř políčka a přečíst se jako 1.

Dvě z chyb jsou chyby v popiscích: fotografie ukazuje 3 a 9 tam, kde popisek uvádí 9 a 8, a 4 tam, kde uvádí 2. Při správném započtení přečte současná čtečka 84,5 %.

Co stále selhává

Z 200 nových fotografií nebylo přesně přečteno 33. Z nich 22 tvoří stránky otevřené knihy úloh: u hřbetu se stránka prohýbá víc, než čtečka dokáže sledovat, takže čára skončí uvnitř políčka a přečte se jako 1, nebo se rohové políčko vyřízne přes čáru. Dalších 7 jsou noviny s prosvítajícím rubem stránky. Zbytek tvoří fotografie obrazovky s moaré, okraj hrací plochy přečtený jako 1 a dvě chyby v popiscích.

Z 200 obrázků ze sady Lexski nebylo přesně přečteno 21: poznámky tužkou přečtené jako číslice, včetně vygumované tužky, která zanechala slabé číslice (7); jedna číslice navíc, většinou osamělá poznámka tužkou přečtená jako zapsaná číslice (5); mřížka na nesprávném místě nebo nenalezená, u motivů aplikací bez čar mezi políčky nebo u mřížky nakreslené rukou (5); a neobvyklé dlaždice a barvy (4).

Proč ne 97 % a co dál

Vše běží ve vašem prohlížeči: model o velikosti 224 kB a asi 850 řádků JavaScriptu, medián přibližně 300 milisekund na fotografii na notebooku a asi 1,2 sekundy při čtyřnásobně zpomaleném procesoru, jako na pomalém telefonu. Větší síť v tomto rozpočtu nepomohla. Zbývá dlouhý chvost: prohnuté stránky, prosvítání, poznámky tužkou a neobvyklé styly aplikací. Každou veřejnou sadu s popisky, kterou jsme našli, jsme už použili nebo viděli, takže další kolo potřebuje fotografie, které sami pořídíme a opatříme popisky, a problémy se slabým inkoustem a prohnutými stránkami bude třeba opravit a změřit právě na nich.

Pro co nejlepší sken

  • Držte telefon přímo nad úlohou tak, aby byla v záběru celá mřížka.
  • Knihu nebo noviny narovnejte: prohnuté stránky způsobují většinu chyb u tištěných úloh.
  • U tenkých novin vložte za stránku čistý list papíru, aby neprosvítala druhá strana.
  • Naskenujte úlohu dřív, než do ní zapíšete poznámky tužkou.
  • Před řešením porovnejte políčka, která řešitel označí, se svou úlohou.

Data a zdroje

Vyzkoušejte řešič →

Ikona aplikace sudoku

Chcete více takových úloh?

Vyvíjíme také aplikaci sudoku pro iPhone, iPad, Mac a Android. Neobsahuje vůbec žádné reklamy, funguje offline a na požádání vám nápověda ukáže techniku, místo aby jen doplnila číslo.

Sudoku Flow vytváří Rubigo Games, vývojář aplikace sudoku doporučované na tomto webu.