高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了

銅靈 曉查 發自 凹非寺

量子位 出品 | 公眾號 QbitAI

一位叫Roger的中國學霸小哥的拍照做題程序mathAI一下子火了,這個AI,堪稱數學解題神器。

輸入一張包含手寫數學題的圖片,AI就能識別出輸入的數學公式,然後給出計算結果。

不僅加減乘除基本運算,就連高等數學中的微積分都不在話下。

就像下面這樣:


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


還在苦苦糾結高數作業如何求解?還在東奔西走的找學霸借作業?手握mathAI,不就是手握了新時代的解題利器麼!

短短几天時間,這個項目在微博就收穫了上百次轉發。看到畫風如此新奇,似乎還能開啟無限可能應用,網友們紛紛召喚自己的印象筆記小助手收藏,大呼:牛逼,以後教寶寶數學就是它了。


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


作者表示,這個項目已經是半開源狀態了,目前開源的部分可以識別計算加減乘除簡單運算。

如果想要識別更加複雜的表達式,可以參考數學公式識別的論文自己進行擴展。

具體來看看這個解題神器。

實現過程

全能型選手mathAI是怎麼實現這個功能的?

作者在Github中介紹說,整個程序使用python實現,具體處理流程包括:圖像預處理→字符識別→數學公式識別→數學公式語義理解→結果輸出。

整個系統的處理流程如下:


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


圖片預處理主要以OpenCV作為主要工具,將圖片中的字符單獨切割出來,避免無關變量對字符識別的影響。


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


隨後,國際數學公式識別比賽數據集(CROHME)對通過卷積神經網絡進行訓練。

此外,還進行結構分析,對字符的空間關係進行判定。比如一個字符的上標和下標,含義自然不一樣。


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


在語義分析階段,就需要彙集上面得到的信息,判斷運算該如何進行了。節點屬性傳遞過程如下圖所示:


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


作者在用160道手寫測試題進行了測試:


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


結果表明,平均字符識別率達到了96.23%,且系統做題的平均正確率達到了79.38%。


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


上手實操

來,實際上手操作下。

作者給出兩種使用模式:網頁模式和接口模式。接口模式比較直觀,只需打開網頁上傳圖片即可自動給出解題結果。

下面以接口模式為例介紹一下mathAI的安裝使用方法。

首先需要安裝flask虛擬環境、科學計算庫numpy、sympy等,它們都可以用pip安裝。

高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了

將項目的lib.zip文件解壓到系統目錄的venv文件夾下。(lib.zip可以回覆lib獲取)

配置置好運行環境後,用PyCharm打開下載好的項目,在載入過程中,PyCharm會自動安裝好項目依賴的軟件庫。

使用命令行進入項目所在目錄,並啟動虛擬環境:

高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了

將FLASK_ENV環境變量設置為啟用開發模式:

高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了

然後使用指令運行flask網站框架:

高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了

打開瀏覽器,在地址中輸入127.0.0.1:5000,即可打開項目網頁。在網頁中輸入一張包含數學公式的圖片,就好返回運算結果。


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


目前GitHub項目頁上的代碼只支持加減乘除這樣的簡單運算。

中國少年

做出這個自動求解系統的,還是一位中國少年。

這位GitHub ID為Roger,本名羅文傑,是中山大學數據科學與計算機學院的研一在讀碩士生,主要攻讀計算機視覺方向。

不僅這個解題神器,在小哥哥的GitHub主頁上還能看到其此前參與的很多有趣研究。

比如這個基於帖子的校園互助交友平臺LiBond。用戶可以在裡面發佈任務,然後使用虛擬幣荔枝進行交易。


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


羅同學的設想是,有空閒時間的同學可以在此平臺上幫助他人,然後結交好朋友,荔枝幣還能用來兌換喜歡的物品。


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


再比如,一個基於C++的無禁手五子棋AI,可以通過openGL實現圖形界面。


高數解題神器:拍照上傳就出答案,這個中國學霸做的AI厲害了


在這個項目中,羅同學使用了最經典的極大極小博弈樹、alpha-beta剪枝、置換表等算法,還附上了核心代碼。

確認過眼神,是學霸無疑了。

傳送門

最後,附上神器的Github地址:

https://github.com/Roujack/mathAI

裡面還附有Demo使用的word、ppt和視頻教程~

— 完 —

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回覆“招聘”兩個字。

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態

相關推薦

推薦中...