雲栖号: https://www.aliyun.com/#module-yedOfott8 第一手的上雲資訊,不同行業精選的上雲企業案例庫,基于衆多成功案例萃取而成的最佳實踐,助力您上雲決策!
現在隻需拍張照片,就能快速解決數獨問題了。
數獨對計算機來說不是什麼難事,但就是這樣一個“平平無奇”的項目卻登上了GitHub今日的熱榜。
這個登上熱榜的項目,名字就叫AI Sudoku,其實就是用AI裡的計算機視覺,把照片變成計算機能看懂的網格和數字。

接下來求解數獨問題當然不難。重要的是,在這個過程中,我們也學習到了一些常用的計算機圖檔處理算法。
拍張照片解數獨
智能數獨求解器(Smart Sudoku Solver)的安裝使用并不複雜,隻需把項目代碼克隆到本地即可。
Windows系統下支援圖形化界面,把拍攝圖檔傳輸到電腦上就能給出答案。
首次運作需要連接配接網絡下載下傳MNIST資料集,訓練模型并建立knn.sav檔案,整個過程可能需要5~10分鐘,之後就可以離線運作了。
python Run.py
運作上面的代碼後,将顯示KNN算法的訓練結果
之後将很快出現GUI界面,選擇上傳你拍攝的數獨謎題圖檔。
一直點選下一步,就能得到這道題的答案:
原理
作者在程式中提供了卷積神經網絡或k近鄰兩種算法,供你選擇。
運作應用程式之前,隻需将Run.py檔案中的modeltype變量設定為“CNN”或“KNN”。預設情況下,程式設定為“ KNN”,而且現階段使用KNN可以獲得更高的準确性。
在我們點選“下一步”的過程中,程式展示了圖檔處理的步驟。
首先是對圖檔進行高斯模糊處理,去除噪聲和其他細節。
接下來,生成一張清晰的掃描圖。由于一張圖檔中不同區域的光照,采用自适應高斯門檻值的方法可以避免這一問題:
反轉圖檔,讓文字和網格都變成白色,背景變成黑色。
之後找出邊緣的四條線,通過這四條線,将拍到的數獨題目變成一張正方形圖檔。
最後将圖檔切割成81個小塊,識别出每個小塊裡的數字。
原文釋出時間:2019-12-30
本文作者:曉查
本文來自阿裡雲雲栖号合作夥伴“
量子位”,了解相關資訊可以關注“
”