拍張照片求解數(shù)獨,計算機如何看懂題目,這個GitHub項目告訴你
曉查 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
現(xiàn)在只需拍張照片,就能快速解決數(shù)獨問題了。
數(shù)獨對計算機來說不是什么難事,但就是這樣一個“平平無奇”的項目卻登上了GitHub今日的熱榜。
這個登上熱榜的項目,名字就叫AI Sudoku,其實就是用AI里的計算機視覺,把照片變成計算機能看懂的網(wǎng)格和數(shù)字。
接下來求解數(shù)獨問題當然不難。重要的是,在這個過程中,我們也學習到了一些常用的計算機圖片處理算法。
拍張照片解數(shù)獨
智能數(shù)獨求解器(Smart Sudoku Solver)的安裝使用并不復雜,只需把項目代碼克隆到本地即可。
Windows系統(tǒng)下支持圖形化界面,把拍攝圖片傳輸?shù)诫娔X上就能給出答案。
首次運行需要連接網(wǎng)絡下載MNIST數(shù)據(jù)集,訓練模型并創(chuàng)建knn.sav文件,整個過程可能需要5~10分鐘,之后就可以離線運行了。
python?Run.py
運行上面的代碼后,將顯示KNN算法的訓練結(jié)果
之后將很快出現(xiàn)GUI界面,選擇上傳你拍攝的數(shù)獨謎題圖片。
一直點擊下一步,就能得到這道題的答案:
原理
作者在程序中提供了卷積神經(jīng)網(wǎng)絡或k近鄰兩種算法,供你選擇。
運行應用程序之前,只需將Run.py文件中的modeltype變量設置為“CNN”或“KNN”。默認情況下,程序設置為“ KNN”,而且現(xiàn)階段使用KNN可以獲得更高的準確性。
'''Run?this?file?to?run?the?application'''
from?MainUI?import?MainUI
from?CNN?import?CNN
from?KNN?import?KNN
import?os
#?Change?the?model?type?variable?value?to?"CNN"?to?use?the?Convolutional?Neural?Network
#?Change?the?model?type?variable?value?to?"KNN"?to?use?the?K?Nearest?Neighbours?Classifier
modeltype?=?"KNN"
在我們點擊“下一步”的過程中,程序展示了圖片處理的步驟。
首先是對圖片進行高斯模糊處理,去除噪聲和其他細節(jié)。
接下來,生成一張清晰的掃描圖。由于一張圖片中不同區(qū)域的光照,采用自適應高斯閾值的方法可以避免這一問題:
反轉(zhuǎn)圖片,讓文字和網(wǎng)格都變成白色,背景變成黑色。
之后找出邊緣的四條線,通過這四條線,將拍到的數(shù)獨題目變成一張正方形圖片。
最后將圖片切割成81個小塊,識別出每個小塊里的數(shù)字。
傳送門
求解數(shù)獨問題并不是很難,這個開源項目的作用其實是幫你了解圖像識別和處理的各種算法,例如高斯模糊、自適應高斯閾值等等。
項目對這些算法的名稱和介紹都做了適當?shù)募哟痔幚?,如果你對這些感興趣,不妨前去觀摩學習一下。
源代碼地址:
https://github.com/neeru1207/AI_Sudoku
- 腦機接口走向現(xiàn)實,11張PPT看懂中國腦機接口產(chǎn)業(yè)現(xiàn)狀|量子位智庫2021-08-10
- 張朝陽開課手推E=mc2,李永樂現(xiàn)場狂做筆記2022-03-11
- 阿里數(shù)學競賽可以報名了!獎金增加到400萬元,題目面向大眾公開征集2022-03-14
- 英偉達遭黑客最后通牒:今天必須開源GPU驅(qū)動,否則公布1TB機密數(shù)據(jù)2022-03-05