GitHub 最強 AI 數學解題神器!拍照上傳秒給答案,連微積分都難不倒他
Posted on2019/05/27
TO 精選觀點
【為什麼我們要挑選這篇文章】AI 應用越發奇葩,過去寫數學一支筆、一顆腦,現在連腦都不用,帶個 AI 就行。
中國 GitHub 大神研發數學 AI,透過深度學習與影像識別,打造最強解題神器。每個學生都夢寐以求的數學 AI 究竟怎麼下載?怎麼用?接著看下去。(責任編輯:陳伯安)
作者:量子位/ 曉查 銅靈
一位叫 Roger 的中國學霸小哥的拍照做題程式 mathAI 一下子火了,這個 AI,堪稱數學解題神器。
輸入一張包含手寫數學題的圖片,AI 就能辨識出輸入的數學公式,然後給出計算結果。
不僅加減乘除基本運算,就連高等數學中的微積分都不在話下。
就像下面這樣:
還在苦苦糾結高數作業如何求解?還在東奔西走的找學霸借作業?手握 mathAI,不就是手握了新時代的解題利器嗎?
此項目程式碼已半開源
短短幾天時間,這個項目在微博就收穫了上百次轉發。看到畫風如此新奇,似乎還能開啓無限可能應用,網友們紛紛召喚自己的印象筆記(中國版 Evernote)小助手收藏,大呼:以後教數學就是它了。
作者表示,這個專案已經是半開源狀態了,目前開源的部分可以辨識計算加減乘除簡單運算。
如果想要辨識更加複雜的運算式,可以參考數學公式辨識的論文自己進行擴展。
具體來看看這個解題神器。
深度學習辨識數學題,正確率逼近 80%
全能型選手 mathAI 是怎麼實現這個功能的?
作者在 Github 中介紹說,整個程式使用 python 實現,具體處理流程包括:圖像預處理 → 字元辨識 → 數學公式辨識 → 數學公式語義理解 → 結果輸出。
整個系統的處理流程如下:
圖片預處理主要以 OpenCV 作為主要工具,將圖片中的字元單獨切割出來,避免無關變數對字元辨識的影響。
隨後,國際數學公式辨識比賽資料集(CROHME)對通過卷積神經網路進行訓練。
此外,還進行結構分析,對字元的空間關係進行判定。比如一個字元的上標和下標,含義自然不一樣。
在語義分析階段,就需要匯集上面得到的資訊,判斷運算該如何進行了。節點屬性傳遞過程如下圖所示:
作者在用 160 道手寫測試題進行了測試:
結果表明,平均字元辨識率達到了 96.23%,且系統做題的平均正確率達到了 79.38%。
手把手教學怎麼用
來,實際上手操作下。
作者給出兩種使用模式:網頁模式和介面模式(Interface)。介面模式比較直觀,只需打開網頁上傳圖片即可自動給出解題結果。
下面以介面模式為例介紹一下 mathAI 的安裝使用方法。
首先需要安裝 flask、虛擬環境、科學資料庫 numpy、sympy 等,它們都可以用 pip 安裝。
pip install flask
pip install virtualenv
將項目的 lib.zip 檔解壓到系統目錄的 venv 資料夾下。(lib.zip 可以回覆 lib 獲取)
配置置好運行環境後,用 PyCharm 打開下載好的專案,在載入過程中,PyCharm 會自動安裝好專案依賴的軟體資料庫。
使用命令列進入專案所在目錄,並啓動虛擬環境:
. venv/bin/activate
將 FLASK_ENV 環境變數設置為啓用開發模式:
export FLASK_ENV=development
然後使用指令運行 flask 網站框架 :
export FLASK_APP=welcome.py
flask run
打開流覽器,在位址中輸入 127.0.0.1:5000,即可打開項目網頁。在網頁中輸入一張包含數學公式的圖片,就好返回運算結果。
目前 GitHub 專案頁上的程式碼只支持加減乘除這樣的簡單運算。
中國神人 Roger 的其他 GitHub 發明
做出這個自動求解系統的,還是一位元中國少年。
這位 GitHub ID 為 Roger,本名羅文傑,是中山大學資料科學與電腦學院的研一在讀碩士生,主要攻讀電腦視覺方向。
不僅這個解題神器,在 Roger 的 GitHub 主頁上還能看到其此前參與的很多有趣研究。
比如這個基於帖子的校園互助交友平臺 LiBond。用戶可以在裡面發佈任務,然後使用虛擬幣荔枝進行交易。
羅同學的設想是,有閒置時間的同學可以在此平臺上幫助他人,然後結交好朋友,荔枝幣還能用來兌換喜歡的物品。
再比如,一個基於 C++ 的無禁手五子棋 AI,可以通過 openGL 實現圖形介面。
在這個項目中,羅同學使用了最經典的極大極小博弈樹、alpha-beta 剪枝、置換表等演算法,還附上了核心程式碼。
確認過眼神,是學霸無疑了。
資料來源:https://buzzorange.com/techorange/2019/05/27/math-ai/…
同時也有4部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,用Python爬取台銀外匯網頁資料輸出成CSV檔 01_如何分析台銀外匯網頁的網頁結構 02_用Python爬取台銀外匯網頁資料 03_台銀外匯結果輸出成CSV檔 完整教學 http://goo.gl/aQTMFS 吳老師教學論壇 http://www.tqc.idv.tw/ 教學論壇(之後...
「python 結果輸出」的推薦目錄:
- 關於python 結果輸出 在 台灣物聯網實驗室 IOT Labs Facebook 的精選貼文
- 關於python 結果輸出 在 吳老師教學部落格 Youtube 的最讚貼文
- 關於python 結果輸出 在 吳老師教學部落格 Youtube 的最讚貼文
- 關於python 結果輸出 在 吳老師教學部落格 Youtube 的最佳解答
- 關於python 結果輸出 在 Python 寫檔,寫入txt 文字檔 - ShengYu Talk 的評價
- 關於python 結果輸出 在 03 將結果輸出成CSV檔 - YouTube 的評價
- 關於python 結果輸出 在 python輸出txt檔 :: 全台大學開課課程資訊網 的評價
- 關於python 結果輸出 在 Python-QA/自己寫的數據類型使用print無法輸出每個元素.md at ... 的評價
- 關於python 結果輸出 在 Python Taiwan | 想請問為什麼這個程式碼的輸出結果怎麼來的 的評價
python 結果輸出 在 吳老師教學部落格 Youtube 的最讚貼文
用Python爬取台銀外匯網頁資料輸出成CSV檔
01_如何分析台銀外匯網頁的網頁結構
02_用Python爬取台銀外匯網頁資料
03_台銀外匯結果輸出成CSV檔
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2019_2
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
[初階]從VBA的自動化到PYTHON網路爬蟲應用
01 建置Python開發環境 3
02 基本語法與結構控制 3
03 迴圈敘述演示與資料結構及函式 3
04 檔案處理與SQLite資料庫處理 6
05 TQC+Python證照第1、2、3類:
基本程式設計與選擇敘述與迴圈敘述 12
06 TQC+Python證照第4、5類:
進階控制流程與函式(Function) 9
[進階]網頁資料擷取、分析與資料視覺化能力
07 網頁資料擷取與分析 3
09 實戰:處理 CSV 檔和 JSON 資料 3
10 實戰:PM2.5即時監測顯示器轉存資料庫 3
11 實戰:下載台銀外匯、下載YAHOO股市類股 3
12 實戰:下載威力彩開獎結果 3
13 TQC+Python 3網頁資料擷取與分析第1類:資料處理能力 3
14 TQC+Python 3第2類:網頁資料擷取與轉換 6
15 TQC+Python 3第3類:資料分析能力 6
16 TQC+Python 3第4類:資料視覺化能力 6
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰? 出版日期:2016/11/29
吳老師 109/1/17
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境,資料
python 結果輸出 在 吳老師教學部落格 Youtube 的最讚貼文
用Python爬取台銀外匯網頁資料輸出成CSV檔
01_如何分析台銀外匯網頁的網頁結構
02_用Python爬取台銀外匯網頁資料
03_台銀外匯結果輸出成CSV檔
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2019_2
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
[初階]從VBA的自動化到PYTHON網路爬蟲應用
01 建置Python開發環境 3
02 基本語法與結構控制 3
03 迴圈敘述演示與資料結構及函式 3
04 檔案處理與SQLite資料庫處理 6
05 TQC+Python證照第1、2、3類:
基本程式設計與選擇敘述與迴圈敘述 12
06 TQC+Python證照第4、5類:
進階控制流程與函式(Function) 9
[進階]網頁資料擷取、分析與資料視覺化能力
07 網頁資料擷取與分析 3
09 實戰:處理 CSV 檔和 JSON 資料 3
10 實戰:PM2.5即時監測顯示器轉存資料庫 3
11 實戰:下載台銀外匯、下載YAHOO股市類股 3
12 實戰:下載威力彩開獎結果 3
13 TQC+Python 3網頁資料擷取與分析第1類:資料處理能力 3
14 TQC+Python 3第2類:網頁資料擷取與轉換 6
15 TQC+Python 3第3類:資料分析能力 6
16 TQC+Python 3第4類:資料視覺化能力 6
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰? 出版日期:2016/11/29
吳老師 109/1/17
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境,資料
python 結果輸出 在 吳老師教學部落格 Youtube 的最佳解答
用Python爬取台銀外匯網頁資料輸出成CSV檔
01_如何分析台銀外匯網頁的網頁結構
02_用Python爬取台銀外匯網頁資料
03_台銀外匯結果輸出成CSV檔
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2019_2
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
[初階]從VBA的自動化到PYTHON網路爬蟲應用
01 建置Python開發環境 3
02 基本語法與結構控制 3
03 迴圈敘述演示與資料結構及函式 3
04 檔案處理與SQLite資料庫處理 6
05 TQC+Python證照第1、2、3類:
基本程式設計與選擇敘述與迴圈敘述 12
06 TQC+Python證照第4、5類:
進階控制流程與函式(Function) 9
[進階]網頁資料擷取、分析與資料視覺化能力
07 網頁資料擷取與分析 3
09 實戰:處理 CSV 檔和 JSON 資料 3
10 實戰:PM2.5即時監測顯示器轉存資料庫 3
11 實戰:下載台銀外匯、下載YAHOO股市類股 3
12 實戰:下載威力彩開獎結果 3
13 TQC+Python 3網頁資料擷取與分析第1類:資料處理能力 3
14 TQC+Python 3第2類:網頁資料擷取與轉換 6
15 TQC+Python 3第3類:資料分析能力 6
16 TQC+Python 3第4類:資料視覺化能力 6
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰? 出版日期:2016/11/29
吳老師 109/1/17
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境,資料
python 結果輸出 在 03 將結果輸出成CSV檔 - YouTube 的推薦與評價
PYTHON 網頁資料擷取分析與資料視覺化應用班第8次上課01_重點回顧與抓取台銀匯率02_抓取幣別與匯率並輸出資料03_將 結果輸出 成CSV檔04_問題回答與存 ... ... <看更多>
python 結果輸出 在 python輸出txt檔 :: 全台大學開課課程資訊網 的推薦與評價
全台大學開課課程資訊網,python結果輸出txt,python讀txt,python txt換行,python讀txt陣列,python write txt換行,python迴圈讀檔,python寫入檔案,python寫入txt不覆蓋. ... <看更多>
python 結果輸出 在 Python 寫檔,寫入txt 文字檔 - ShengYu Talk 的推薦與評價
本篇介紹Python 寫檔寫入txt 文字檔的方法,Python 寫檔是檔案處理的必備技能,在Python 程式 ... 結果輸出如下,有注意到有換行跟沒換行的差異了嗎? ... <看更多>