我喜欢逻辑游戏,同时也喜欢计算机视觉和人工智能算法。为了把这两样结合起来,开发了一个软件来检测、分析和解决一些逻辑难题,比如数独和摩天大楼。
本文主要解释“LogicGamesSolver”项目,你可以在这个github存储库中找到源代码以及运行它的说明。
https://github.com/fabridigua/LogicGamesSolver
该项目结合了三个研究领域:
计算机视觉在图像问题检测中的应用
深度学习对问题中的数字进行分类
人工智能玩游戏
该软件使用Python编写,使用opencv4.01和Tensoflow 2.3.0库。
它能解决三种游戏:数独、星际大战和摩天大楼。
第一步:检测
第一步是检测输入图像中的谜题。
其思想是找到最大的轮廓,即图像中最大的多边形。如果场景是干净的,有尽可能少的噪音和物体,则此步骤对于软件来说更容易。
使用参数cv2.RETR_EXTERNAL的findContours方法找到轮廓¹