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/…
「opencv下載」的推薦目錄:
- 關於opencv下載 在 台灣物聯網實驗室 IOT Labs Facebook 的精選貼文
- 關於opencv下載 在 軟體開發學習資訊分享 Facebook 的最佳解答
- 關於opencv下載 在 軟體開發學習資訊分享 Facebook 的最佳解答
- 關於opencv下載 在 OpenCV: Open Source Computer Vision Library - GitHub 的評價
- 關於opencv下載 在 [第1期] Install and use OpenCV to read image/安裝與使用 ... 的評價
- 關於opencv下載 在 Python 安裝OpenCV 模組 - ShengYu Talk 的評價
- 關於opencv下載 在 opencv安裝win102022-精選在臉書/Facebook/Dcard上的焦點 ... 的評價
- 關於opencv下載 在 opencv安裝win102022-精選在臉書/Facebook/Dcard上的焦點 ... 的評價
- 關於opencv下載 在 如何在Windows 8.1 中從為github 下載的用於python 的.zip ... 的評價
- 關於opencv下載 在 Yolov3 Github - panditpathak.de 的評價
opencv下載 在 軟體開發學習資訊分享 Facebook 的最佳解答
--課程已於 2017 年 10 月更新--
由 PythonHow.com 的創始人 Ardit 親自主講的 Python 超級線上課程
透過這 23.5 個小時的課程,你會學到
1. 成為一名能夠在Python 3上獨立開發複雜應用程式的Python專業人士。
2. 在廣泛的領域建構10個真實世界的Python應用程式。
3. 使用Python建構使用Flask的Web應用程式。
4. 使用Python 與 Tkinter 來建構桌面應用程式。
5. 使用Python開發資料庫應用程式。
6. 使用Python Numpy 進行科學計算
7. 使用Python和使用 Pandas 和 Bokeh 進行資料分析與互動資料視覺化。
8. 使用 Python 與 Folium 建立互動式 Web 地圖。
9. 使用 Python 與 Beautiful Soup 做網站爬蟲。
10. 用 Python 與 OpenCV 用於電腦視覺。
11. 使用 Python 與 Smtplib 發送自動電子郵件。
12. 使用 Python 透過各種資料服務 API 下載資料。
13. 使用 Python 分析和視覺化股票市場數據。
14. 使用Python 與 Geopy 對地址進行批次地理編碼。
15. 根據電腦事件使用 Python 開發排程程式。
16. 使用並充分理解物件導向程式設計。
>課程有英文字幕
https://softnshare.wordpress.com/2017/…/23/pythonmegacourse/
opencv下載 在 軟體開發學習資訊分享 Facebook 的最佳解答
--課程已於 2017 年 7 月更新--
由 PythonHow.com 的創始人 Ardit 親自主講的 Python 超級線上課程,這堂課的前 5 % 是針對 Python 初學者,後面 95% 就著重在各式的應用,從 Web 應用程式/服務,資料庫應用程式,桌面應用程式,數值分析運算,電腦視覺 ( 使用 OpenCV ),網站爬蟲 ,資料視覺化(使用 Pandas 和 Bokeh) 等相當實用的主題,課程總共有 22.5 個小時,這是一堂上完後就可以直接應用的 python 課程。
我將學到什麼?
1. 成為一名能夠在Python 3上獨立開發複雜應用程式的Python專業人士。
2. 在廣泛的領域建構10個真實世界的Python應用程式。
3. 使用Python建構使用Flask的Web應用程式。
4. 使用Python 與 Tkinter 來建構桌面應用程式。
5. 使用Python開發資料庫應用程式。
6. 使用Python Numpy 進行科學計算
7. 使用Python和使用 Pandas 和 Bokeh 進行資料分析與互動資料視覺化。
8. 使用 Python 與 Folium 建立互動式 Web 地圖。
9. 使用 Python 與 Beautiful Soup 做網站爬蟲。
10. 用 Python 與 OpenCV 用於電腦視覺。
11. 使用 Python 與 Smtplib 發送自動電子郵件。
12. 使用 Python 透過各種資料服務 API 下載資料。
13. 使用 Python 分析和視覺化股票市場數據。
14. 使用Python 與 Geopy 對地址進行批次地理編碼。
15. 根據電腦事件使用 Python 開發排程程式。
16. 使用並充分理解物件導向程式設計。
>課程有英文字幕
https://softnshare.wordpress.com/2017/…/23/pythonmegacourse/
opencv下載 在 [第1期] Install and use OpenCV to read image/安裝與使用 ... 的推薦與評價
This video shows how to install OpenCV in Anaconda and write program to read image in the Spyder IDE.這個影片說明如何在Anaconda中安裝 OpenCV ... ... <看更多>
opencv下載 在 Python 安裝OpenCV 模組 - ShengYu Talk 的推薦與評價
$ pip install opencv-python · $ sudo apt-get install python-opencv · $ pip3 install opencv-python · $ sudo apt-get install python3-opencv ... ... <看更多>
opencv下載 在 OpenCV: Open Source Computer Vision Library - GitHub 的推薦與評價
Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub. ... <看更多>