Sudoku Flow

O que aprendemos ao medir o nosso leitor de fotos de Sudoku

Atualizado em 5 de novembro de 2026

O que conta como leitura correta

Um puzzle só é lido corretamente se todas as 81 células estiverem corretas: um algarismo errado dá origem a um puzzle diferente. Por isso contamos puzzles inteiros, e não células. As duas medidas podem contar histórias muito diferentes, como esta página mostra: nas fotos de puzzles impressos, o leitor acerta agora 98,9% das células, mas a proporção de puzzles inteiros quase não mudou, porque a maioria das células erradas se concentra em poucas imagens difíceis.

Contamos também o erro mais perigoso: um puzzle lido incorretamente que, ainda assim, tem exatamente uma solução. Um Sudoku verdadeiro tem uma única solução, por isso uma leitura sem nenhuma ou com várias é detetada de imediato. Um puzzle errado com uma solução parece correto, e é por isso que o solucionador marca todas as células de que não tinha a certeza e lhe pede que as compare com o seu puzzle antes de resolver.

Com 200 imagens, um resultado tem uma precisão limitada. Para os resultados principais indicamos um intervalo de 95% (um intervalo de Wilson): 89,5% de 200 imagens significa que o mais provável é que a taxa real esteja entre 84,5% e 93,0%.

As imagens em que testámos

Começámos com dois conjuntos de dados abertos. O conjunto Sudoku Image Recognition de Lexski (CC0) tem 1400 imagens, na sua maioria capturas de ecrã e fotos que as pessoas partilharam online: aplicações de todos os estilos, temas escuros, marcas a lápis, puzzles meio resolvidos em papel. O conjunto de dados de Baptiste Wicht e Jean Hennebert (CC BY 4.0) tem Sudoku de jornais fotografados com telemóveis, alguns deles terminados à mão a caneta.

Antes de alterar fosse o que fosse, pusemos de parte três conjuntos de teste: 200 imagens de Lexski, 40 fotos de jornal e 40 puzzles de jornal terminados à mão. Não treinámos com eles nem olhámos para eles durante o trabalho. Todas as decisões foram tomadas com base noutras 200 imagens de Lexski, o conjunto de afinação, e os conjuntos de teste foram lidos uma única vez, no fim.

O ponto de partida

A primeira versão, de 31 de outubro, leu com exatidão 101 das 200 imagens de Lexski, 34 das 40 fotos de jornal e nenhum dos 40 puzzles terminados. A maior parte das suas dificuldades surgia antes dos algarismos. Tomava como tabuleiro a maior forma de tinta mais ou menos quadrada e, numa captura de ecrã, essa forma inclui muitas vezes um cabeçalho ou o teclado numérico, enquanto as finas linhas cinzentas de um tema escuro passam totalmente despercebidas. No conjunto de afinação, colocou a grelha no sítio certo apenas 118 vezes em 200.

O que mudámos, passo a passo

Cada linha é uma alteração, e o número indica quantas das 200 imagens de afinação foram então lidas com exatidão. As três últimas linhas correspondem à segunda ronda.

AlteraçãoImagens de afinação lidas com exatidão (de 200)
Primeira versão, 31 de outubro99
Grelha encontrada pelas suas linhas: dez linhas igualmente espaçadas em cada direção129
Hipóteses de grelha avaliadas lado a lado; testado um desvio de uma célula136
Linhas finíssimas e ténues usadas para encontrar a grelha138
Células recortadas por inteiro; algarismos aprendidos com células reais161
Uma pequena rede mapeia onde está o tabuleiro162
Linhas seguidas onde uma página se curva163
Melhor rede de algarismos, marcas a lápis como classe própria173
Média de três redes de algarismos177
Regra cautelosa da solução única; tabuleiros terminados lidos como um todo177
Segunda ronda: fotos em tamanho real reduzidas a metade antes de encolher178
Segunda ronda: tinta baixa e ténue tratada como marca a lápis179
Segunda ronda: fotos de lado avaliadas pelas três redes179

A maior parte do ganho veio de três alterações. A grelha é agora encontrada pelas suas linhas: cada hipótese sobre o tabuleiro é ajustada a dez linhas igualmente espaçadas em cada direção e as hipóteses são avaliadas lado a lado, e uma pequena rede que mapeia onde está o tabuleiro tem direito a voto. Cada célula é recortada por inteiro, de modo que uma marca a lápis continua pequena no seu canto e um algarismo claro numa célula de fundo escuro fica parecido com tinta no papel. Além disso, as redes de algarismos aprenderam com células reais recortadas das imagens de treino de Lexski, com as marcas a lápis como uma classe própria. Três pequenas redes, treinadas separadamente, leem agora cada célula e é feita a média das suas respostas, porque erram em células diferentes.

Um puzzle terminado recebe ajuda extra. Quando um tabuleiro tem 79 ou mais algarismos, o leitor procura a grelha completa mais provável em que cada linha, coluna e bloco contém os algarismos de 1 a 9. Lidos célula a célula, apenas 7 dos 40 puzzles de teste preenchidos à mão saíram exatos; lidos como Sudoku terminados, saíram todos os 40.

A segunda ronda acrescentou três alterações mais pequenas. Uma foto de telemóvel em tamanho real é reduzida a metade, passo a passo, antes de ser encolhida, para que as linhas finas e os traços a lápis entrem na média em vez de serem saltados. Uma célula cuja tinta é ao mesmo tempo muito mais baixa e muito mais ténue do que os algarismos lidos com segurança no tabuleiro é tratada como uma provável marca a lápis. E a rotação de uma foto virada de lado é avaliada pelas três redes em vez de apenas uma.

Uma captura de ecrã de Sudoku com tema escuro, marcas a lápis e algarismos coloridos; o tabuleiro endireitado, com os cruzamentos das linhas marcados a verde; as 81 células como pequenas imagens; e os números lidos, a azul, sem as marcas a lápis
Uma captura de ecrã com tema escuro gerada por nós: o tabuleiro endireitado, com os cruzamentos de linhas que encontrou; as 81 células tal como as redes as veem; e o que foi lido. As marcas a lápis ficam de fora.

O que não ajudou

Também medimos estas alterações no conjunto de afinação, e ficaram de fora:

  • Uma rede de algarismos maior: com 59 000 pesos em vez de 42 000, leu mais uma imagem de afinação e foi 3,8 vezes mais lenta no navegador.
  • 3000 capturas de ecrã de aplicações geradas, com marcas a lápis e temas escuros: o mesmo resultado com ou sem elas.
  • Ler a cor em vez de tons de cinzento, para que uma caneta vermelha fique tão escura como tinta preta: mais duas imagens de afinação, mas a escrita à mão passou a ser lida pior.
  • Distorcer os algarismos de treino para se parecerem mais com escrita à mão: a escrita à mão passou a ser lida pior.
  • Deixar a regra da solução única alterar mais células: mais puzzles lidos corretamente, mas também mais dos perigosos puzzles errados com uma solução.
  • Voltar a treinar as três redes com dados novos, ou usar quatro ou seis redes: dentro do ruído, por isso ficaram as primeiras.
  • Tratar o limite da imagem como o limite do tabuleiro, para tabuleiros cortados pelo enquadramento: tantas imagens perdidas como ganhas.

Resultados nos primeiros conjuntos de teste

Puzzles lidos com exatidão em cada conjunto de teste, pela primeira versão e pelo leitor na sua forma atual:

Conjunto de teste31 de outubroAgora
Capturas de ecrã e fotos partilhadas online (Lexski)Imagens: 20010150,5%17989,5%
Fotos de jornal (Wicht e Hennebert)Imagens: 403485,0%40100,0%
Puzzles de jornal terminados à mão (Wicht e Hennebert)Imagens: 4000,0%40100,0%

Nas imagens de Lexski, o leitor passou de 50,5% para 89,5% (84,5% a 93,0%), e os puzzles lidos incorretamente mas com uma solução passaram de 7 para 4. Em três desses quatro, o único algarismo a mais é o algarismo que lá pertence, por isso o puzzle continua a levar à solução certa; o quarto é um 1 claramente impresso que o conjunto de dados deixa vazio. Dos 179, 177 foram obtidos no fim da primeira ronda. Os dois últimos surgiram na segunda ronda, depois de termos estudado o que falhou, por isso este conjunto já não está intocado.

Quarenta em quarenta parece perfeito, mas 40 imagens só conseguem mostrar que a taxa real está acima de cerca de 91%. E uma verificação que devíamos ter feito primeiro: quatro das 40 fotos de jornal do conjunto de teste estão também no conjunto de treino desse conjunto de dados, duas delas idênticas píxel a píxel. Sem elas, 36 em 36.

Um novo teste: 200 fotos que nenhuma versão tinha visto

Nessa altura, os primeiros conjuntos de teste já tinham sido lidos e as suas falhas estudadas, por isso já não nos podiam dizer como o leitor se comporta em imagens que nunca encontrou. Procurámos mais fotos de Sudoku etiquetadas no Hugging Face, no Kaggle, no GitHub, no Zenodo, no Figshare e no AIcrowd. A maioria dos conjuntos era de tabuleiros gerados, algarismos isolados ou cópias das fotos de Wicht. Três coleções no GitHub tinham fotos reais etiquetadas, todas de puzzles impressos: 100 fotos de um livro de puzzles aberto (NatalijaPetric/SudokuDataset), 80 fotos, na maioria de jornais (mineshpatel1/sudoku-solver, depois de retirarmos 49 que são fotos do próprio Wicht e uma cópia), e 20 folhas impressas de um projeto de uma disciplina de visão por computador da Universidade de Bucareste (danielsociu/SudokuRecognition).

Nenhuma das três indica uma licença, por isso usámo-las apenas para medir: nunca para treinar, e não são mostradas aqui. A lista de imagens foi fixada e guardada antes de qualquer alteração, escolhida por regra a partir dos hashes dos ficheiros e das etiquetas, e as imagens só foram abertas depois de feita a última alteração da segunda ronda. Depois, cada versão do leitor leu-as uma vez. A tabela conta os puzzles lidos com exatidão.

Fonte31 de outubroPrimeira rondaAgora
Um livro de puzzles aberto (NatalijaPetric)Fotos: 1007979,0%7676,0%7878,0%
Sobretudo jornais (mineshpatel1)Fotos: 806581,3%6885,0%6986,3%
Folhas impressas (disciplina da Universidade de Bucareste)Fotos: 2020100,0%20100,0%20100,0%
Todas as 200Fotos: 20016482,0%16482,0%16783,5%

Nos puzzles impressos que o leitor nunca tinha visto, todo o trabalho das duas rondas mudou pouco. A primeira versão leu 82,0% deles com exatidão, a atual 83,5% (77,7% a 88,0%): ganhou 14 puzzles e perdeu 11. O que melhorou de facto foram as células: 98,9% são lidas corretamente, em vez de 94,2%, e a grelha é encontrada em todas as fotos, em vez de em 195 de 200. Puzzles lidos incorretamente mas com uma solução: 5 antes, 6 agora.

As perdas têm uma causa clara. Para ler marcas a lápis e temas escuros, cada célula é agora recortada por inteiro e a tinta ténue conta. No papel de jornal fino, o verso da página transparece, ténue e espelhado, e o novo leitor lê essas sombras como algarismos; a primeira versão olhava apenas para a maior forma de tinta numa célula e nunca as via. Nas páginas de livro curvadas, a linha exterior do tabuleiro ou uma linha de bloco pode cair dentro de uma célula e ser lida como um 1.

Duas das falhas são erros nas etiquetas: a foto mostra um 3 e um 9 onde a etiqueta diz 9 e 8, e um 4 onde diz 2. Contando-as como certas, o leitor atual lê 84,5%.

O que ainda corre mal

Das 200 fotos novas, 33 não foram lidas com exatidão. Destas, 22 são páginas do livro de puzzles aberto: perto da lombada, a página curva-se mais do que o leitor acompanha, por isso uma linha acaba dentro de uma célula e é lida como um 1, ou uma célula de canto é cortada através de uma linha. Outras 7 são jornais com o verso da página a transparecer. As restantes são uma foto de um ecrã com moiré, um limite do tabuleiro lido como um 1 e os dois erros nas etiquetas.

Das 200 imagens de Lexski, 21 não foram lidas com exatidão: marcas a lápis lidas como algarismos, incluindo lápis apagado que deixou algarismos ténues (7); um algarismo a mais, na maioria dos casos uma marca a lápis isolada lida como algarismo inserido (5); a grelha no sítio errado ou não encontrada, em temas de aplicações sem linhas entre as células ou com uma grelha desenhada à mão (5); e estilos de célula e cores invulgares (4).

Porque não 97%, e o que vem a seguir

Tudo é executado no seu navegador: um modelo de 224 KB e cerca de 850 linhas de JavaScript, uma mediana de cerca de 300 milissegundos por foto num portátil e cerca de 1,2 segundos com o processador abrandado quatro vezes, como num telemóvel lento. Uma rede maior não ajudou dentro desse orçamento. O que resta é uma cauda longa: páginas curvadas, transparência do verso, marcas a lápis e estilos de aplicação invulgares. Todos os conjuntos públicos etiquetados que encontrámos já foram usados ou vistos, por isso a próxima ronda precisa de fotos tiradas e etiquetadas por nós, com os problemas da tinta ténue e das páginas curvadas corrigidos e medidos nessas fotos.

Para a melhor digitalização

  • Segure o telemóvel diretamente por cima do puzzle, com a grelha inteira no enquadramento.
  • Alise o livro ou o jornal: as páginas curvadas causam a maioria das falhas nos puzzles impressos.
  • Em papel de jornal fino, coloque uma folha de papel em branco atrás da página para que o outro lado não transpareça.
  • Digitalize antes de escrever marcas a lápis no puzzle.
  • Antes de resolver, compare as células que o solucionador marca com o seu puzzle.

Dados e fontes

Experimente o resolvedor →

Ícone da aplicação de Sudoku

Queres mais tabuleiros como este?

Também fazemos uma aplicação de Sudoku para iPhone, iPad, Mac e Android. Não tem anúncios nenhuns, funciona sem Internet e, quando pedes uma dica, mostra-te a técnica em vez de se limitar a preencher um número.

O Sudoku Flow é feito pela Rubigo Games, a criadora da aplicação de Sudoku recomendada neste site.