戴建浜 福建省莆田第二中學
在學習的過程中,準備好一個錯題集,是一個好習慣。但如何才能隨時記錄和整理在平時學習過程中做過的錯題呢?傳統的方法有兩種:一種就是把錯題逐字抄下來,這種方法在記錄大型應用題時浪費時間;另外一種方法就是把試卷剪貼下來,再粘貼到錯題本里,這樣做雖然會節省一點時間,但破壞了原始材料,在試卷雙面都有錯題時會變得很麻煩。由于當前這兩種方法存在種種問題,所以尋找一種高效、能夠自動掃描分類記錄錯題的方法是必要的。
近年來,基于樹莓派的人工智能技術應用日趨廣泛。本研究以樹莓派[1]為硬件平臺,結合Python解釋型編程語言以及OpenCV機器視覺庫[2],實現錯題掃描全過程語音識別,通過攝像頭獲取錯題圖像,自動分析切片處理,保存在錯題圖片庫中,整個過程高效、便捷,有效節省整理錯題時間。
錯題是學習的必然產物,本研究不僅可以讓學生高效率地收集錯題,還可以讓教師巧妙地利用“錯誤”資源,使“錯題資源”的利用更加切合實際,符合學生的特點和要求,有利于教學資源的開發和有效利用,為提高教學質量服務。
本研究的核心組件是樹莓派第四代[3],即Raspberry Pi 4。樹莓派是一款基于ARM的微型電腦主板,有4個USB接口可連接鍵盤、網線和攝像頭等外部設備,主板上有以太網口、WI-FI和藍牙芯片,可無線連接互聯網充當小型服務器使用。最新發行的Raspberry Pi 4中央處理器采用全新架構,28nm工藝,四個內核,時鐘頻率達到1.5 GHz,較原來三代的產品速度有4倍的提升。樹莓派小巧的體積、良好的擴展性能(外接USB設備)以及高速的計算能力是本研究實現語音識別、圖像識別的前提條件。
本研究先通過WI-FI模塊連接上互聯網后,再用Python的多線程技術讓USB麥克風實時識別語音指令,當識別到“拍照”命令時,系統將通過高清攝像頭拍取錯題的照片,加工處理后把結果輸出到高清顯示屏顯示出來。如果操作有錯誤可通過語音“刪除”返回到上一步,也可以通過語音“合并”來合并被分開的兩張圖片。具體原理如圖1所示。

圖1
Python是一種面向對象的解釋型計算機程序設計語言,具有豐富和強大的庫。OpenCV是一個基于BSD許可發行的跨平臺計算機視覺庫,軟件完全開源,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列C函數和少量C++類構成,同時提供了Python語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。snowboy是一款開源的、輕量級語音喚醒引擎,通過它可以很輕松地創建屬于自己的喚醒詞。本研究的智能識別分析功能主要是通過Python的多個處理圖像的OpenCV庫和識別聲音的snowboy庫來完成。
學生在使用時要先把印有代表個人身份的二維碼的卡片(IC卡)放在記錄儀的刷卡處,系統識別讀取卡號后,生成對應卡號信息和目錄,這時學生要說出錯題的學科,可從語文、數學、英語、物理、化學、生物、政治、地理、歷史九大學科中選擇,系統確認后進入等待識讀階段,這時說出“拍照”,系統就會自動識別分割題目并保存在系統中,說出“刪除”系統就會刪除前一次識別的內容,說出“合并”,就與前一次識別的圖片合并,生成一張圖片,高清的液晶屏上會顯示每次操作的結果。另外,學生可以通過校園網絡登錄樹莓派服務器,訪問所有錯題資源,并實現打印、標注分享等功能。
本研究硬件部分主要由樹莓派、話筒、高清攝像頭、7寸屏、小音箱及一個掃描支架組成。話筒、高清攝像頭通過USB接口與樹莓派連接,高清攝像頭獲取到的圖像經算法處理后通過樹莓派mini HDMI接口輸出結果至7寸顯示器。系統總體硬件架構如圖2所示。

圖2
為了提高聲音識別的準確性,話筒采用USB接口的全向拾音麥,內含高品質電容咪頭,有效抑制低噪產生,傳遞清晰的聲音,提高識別準確率,實現遠距離拾音。在圖像處理方面,為了排除圖像受外界環境的干擾,高清攝像頭采用兩側帶有LED燈的高拍儀。硬件模型如圖3所示。

圖3
樹莓派上安裝有Ubuntu操作系統軟件[4],系統通過有線千兆網口或無線5G高速接入班班通網絡,系統已集成Python編程語言,但OpenCV視覺識別庫需人工安裝,這些環境的搭建是保證硬件正常運行的必要條件。程序軟件分為二維碼識別模塊、語音識別模塊、攝像頭拍照模塊、OpenCV視覺處理分析模塊四個模塊,各模塊具體設計如下:
①二維碼識別模塊。在本研究中,筆者讓學生用自己的學號通過草料二維碼在線生成一個二維碼圖片,打印出來并貼在卡片上,再通過Python的pyzbar庫的decode方法來輕松地讀取圖片里面的二維碼信息。
②語音識別模塊。樹莓派原生的音頻設備是不支持語音輸入的(無法錄音),所以本模塊通過USB口外接一個麥克風實現聲音的拾取,采用snowboy實現語音喚醒和識別功能。[5]snowboy可離線使用,無需聯網,精確度高,低延遲,耗費資源非常低(單核700MHz樹莓派只占用10%CPU),所以適合在樹莓派上運行。當安裝完需要的依賴項后,在snowboy自定義生成訓練詞。接著編寫程序,通過回調函數調用執行相應動作。
③攝像頭拍照模塊。為了保證圖片的清晰度,筆者選用了一個800W像素的高清USB攝像頭,通過OpenCV可以輕松地讀取到攝像頭,當語音識別到“拍照”一詞時,樹莓派會保存一張或多張圖片在SD卡中,以學生學號為文件名的文件夾下。
④視覺處理分析模塊。在獲取到清晰的圖像后,通過OpenCV先把圖像轉化成HSV格式,然后去除顏色范圍外的其余顏色,再對圖像進行二值化和膨脹操作,最后通過圖像輪廓查找與繪制方法findContours獲取所有矩形的坐標,再對圖片進行切片處理,保存在相應目錄中。
⑤錯題網頁共享模塊。掃描好的錯題被按學科分類保存在樹莓派的SD卡上,筆者利用Djiango開發網頁端程序,讓樹莓派成為一臺小型的WEB服務器。Djiango是一個開放源代碼的Web應用框架,使用Python開發。運行Djiango的Web服務,學生可以使用手機、平板或個人電腦通過網頁訪問自己的錯題本。
①單個紅色框測試。圖4中左邊是加了紅色邊框的試卷,右邊是使用系統處理后生成的圖形,從圖中可以看到,系統成功截取到紅色框,系統獲取到紅色矩形框的坐標后,在紅色邊框上加上藍色框。

圖4
②兩個紅色框測試。圖5中左邊標注了兩個紅色框,系統通過OpenCV進行二值化和膨脹操作后成功獲取到兩個矩形框的坐標。

圖5
③測試用紅色橫豎“井”字條框出錯題。圖6中使用四條紅色條型紙條構成一個“井”字,系統通過OpenCV轉化HSV格式,然后通過cv.inRange去除顏色范圍外的其余顏色,然后用藍色矩形框標注出內部矩形框的邊界。

圖6
本研究通過人工智能技術實現錯題智能提取,分類保存,整個過程操作簡單,識別率高,極大地提高錯題整理速度。數字化后的錯題保存在樹莓派SD中,檢索方便,可通過手機或平板瀏覽或分享,對提高學生學習成績具有一定的促進作用。