銅靈 曉查 發自 凹非寺
量子位 出品 | 公衆号 QbitAI
一位叫Roger的中國學霸小哥的拍照做題程序mathAI一下子火了,這個AI,堪稱數學解題神器。
輸入一張包含手寫數學題的圖片,AI就能識别出輸入的數學公式,然後給出計算結果。
不僅加減乘除基本運算,就連高等數學中的微積分都不在話下。
就像下面這樣:
還在苦苦糾結高數作業如何求解?還在東奔西走的找學霸借作業?手握mathAI,不就是手握了新時代的解題利器麼!
短短幾天時間,這個項目在微博就收獲了上百次轉發。看到畫風如此新奇,似乎還能開啟無限可能應用,網友們紛紛召喚自己的印象筆記小助手收藏,大呼:牛逼,以後教寶寶數學就是它了。
作者表示,這個項目已經是半開源狀态了,目前開源的部分可以識别計算加減乘除簡單運算。
如果想要識别更加複雜的表達式,可以參考數學公式識别的論文自己進行擴展。
具體來看看這個解題神器。
實現過程
全能型選手mathAI是怎麼實現這個功能的?
作者在Github中介紹說,整個程序使用python實現,具體處理流程包括:圖像預處理→字符識别→數學公式識别→數學公式語義理解→結果輸出。
整個系統的處理流程如下:
圖片預處理主要以OpenCV作為主要工具,将圖片中的字符單獨切割出來,避免無關變量對字符識别的影響。
随後,國際數學公式識别比賽數據集(CROHME)對通過卷積神經網絡進行訓練。
此外,還進行結構分析,對字符的空間關系進行判定。比如一個字符的上标和下标,含義自然不一樣。
在語義分析階段,就需要彙集上面得到的信息,判斷運算該如何進行了。節點屬性傳遞過程如下圖所示:
作者在用160道手寫測試題進行了測試:
結果表明,平均字符識别率達到了96.23%,且系統做題的平均正确率達到了79.38%。
上手實操
來,實際上手操作下。
作者給出兩種使用模式:網頁模式和接口模式。接口模式比較直觀,隻需打開網頁上傳圖片即可自動給出解題結果。
下面以接口模式為例介紹一下mathAI的安裝使用方法。
首先需要安裝flask、虛拟環境、科學計算庫numpy、sympy等,它們都可以用pip安裝。
将項目的lib.zip文件解壓到系統目錄的venv文件夾下。(lib.zip可以回複lib獲取)
配置置好運行環境後,用PyCharm打開下載好的項目,在載入過程中,PyCharm會自動安裝好項目依賴的軟件庫。
使用命令行進入項目所在目錄,并啟動虛拟環境:
将FLASK_ENV環境變量設置為啟用開發模式:
然後使用指令運行flask網站框架:
打開浏覽器,在地址中輸入127.0.0.1:5000,即可打開項目網頁。在網頁中輸入一張包含數學公式的圖片,就好返回運算結果。
目前GitHub項目頁上的代碼隻支持加減乘除這樣的簡單運算。
中國少年
做出這個自動求解系統的,還是一位中國少年。
這位GitHub ID為Roger,本名羅文傑,是中山大學數據科學與計算機學院的研一在讀碩士生,主要攻讀計算機視覺方向。
不僅這個解題神器,在小哥哥的GitHub主頁上還能看到其此前參與的很多有趣研究。
比如這個基于帖子的校園互助交友平台LiBond。用戶可以在裡面發布任務,然後使用虛拟币荔枝進行交易。
羅同學的設想是,有空閑時間的同學可以在此平台上幫助他人,然後結交好朋友,荔枝币還能用來兌換喜歡的物品。
再比如,一個基于C 的無禁手五子棋AI,可以通過openGL實現圖形界面。
在這個項目中,羅同學使用了最經典的極大極小博弈樹、alpha-beta剪枝、置換表等算法,還附上了核心代碼。
确認過眼神,是學霸無疑了。
傳送門 最後,附上神器的Github地址:
htt
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!