Visão computacional e transformação de perspectiva extraem Sudoku

São Paulo — InkDesign News — Neste artigo, exploramos o uso de técnicas de visão computacional clássica para a detecção e transformação de quadrados em um tabuleiro de Sudoku, utilizando algoritmos de machine learning.
Arquitetura de modelo
A identificação de grades de Sudoku pode ser realizada por meio de várias abordagens, desde a detecção de contornos até melhorias na imagem. Um método amplamente utilizado é o algoritmo de Canny para detecção de bordas, que extrai contornos significativos. A princípio, consideramos que a grade de Sudoku está visivelmente presente, envolvendo a detecção de bordas e a dilatação para melhorar a precisão do contorno.
“O Sudoku está claramente visível no quadro com uma borda quadrilátera distinta, em forte contraste com o fundo.”
(“The Sudoku grid is clearly and fully visible in the frame with a clear quadrilateral border, with strong contrast from the background.”)— Autor, Engenheiro de Visão Computacional
Treinamento e otimização
Neste processo, utilizamos um pipeline de processamento que convertia a imagem original em um formato em escala de cinza, seguido pela aplicação do filtro de Canny. O objetivo é reduzir o ruído e aumentar a precisão na detecção. A fase de dilatação ajusta pequenas lacunas na máscara binária criada a partir da detecção de bordas.
As contagens obtidas foram filtradas para encontrar o contorno mais significativo, representando a grade. Em última análise, utilizamos o algoritmo Douglas-Peucker para simplificar a forma em um polígono com quatro vértices, permitindo uma transformação de perspectiva eficaz.
“Essa abordagem clássica é útil em cenários de iluminação e sombras desafiadoras.”
(“This classical approach is useful in challenging lighting and shadow settings.”)— Autor, Engenheiro de Visão Computacional
Resultados e métricas
Após implementação do algoritmo, obtemos métricas promissoras na detecção de grades. A precisão foi avaliada com base em testes em diversas imagens de Sudoku. As operações de transformação resultaram em uma grade perfeitamente quadrada, o que é crucial para a resolução correta do jogo.
Nos próximos passos, consideramos a aplicação de técnicas de deep learning para generalizar melhor a detecção em ambientes variados. Este estudo propõe a possibilidade de integrar métodos avançados de machine learning para aprimorar ainda mais a acurácia e o desempenho dos algoritmos.
“Utilizar aprendizado profundo pode ser uma solução viável para generalizar a detecção em diversos cenários.”
(“Using deep learning could be a viable solution to generalize detection in various settings.”)— Autor, Engenheiro de Visão Computacional
Fonte: (Towards Data Science – AI, ML & Deep Learning)