概 覽

以“紅外測距傳感器”為研究對象,先采集整理數(shù)據(jù),再利用BaseML分別采用線性回歸、多項式回歸算法訓(xùn)練模型,實驗表明多項式回歸能良好擬合其特征曲線。在模型訓(xùn)練后,借助pinpong庫和XEduHub推理框架,實現(xiàn)真實場景的測距應(yīng)用。作者認(rèn)為,當(dāng)前AI for Science漸成科研熱點(diǎn),中小學(xué)生雖難吃透機(jī)器學(xué)習(xí)底層原理,但通過實踐可初步掌握人工智能概念、思維及解決問題之道,為未來科技的學(xué)習(xí)奠定基礎(chǔ)。

傳感器是一種信息輸入設(shè)備,能夠檢測或感受外界的信號、物理條件(如光、熱、濕度)或化學(xué)組成(如煙霧)等。常見的傳感器通過敏感元件獲取外界信息,并轉(zhuǎn)換成電信號輸出。例如,光線傳感器中的敏感元件為光敏電阻,當(dāng)光線強(qiáng)弱發(fā)生變化時,輸出的電壓信號也發(fā)生相應(yīng)的變化。傳感器決定了數(shù)字世界與物理世界交互的能力,也成為信息科技課程中的重要學(xué)習(xí)內(nèi)容。

根據(jù)輸出量與輸入量之間的關(guān)系,將傳感器分為線性傳感器和非線性傳感器兩個大類。線性傳感器指其輸出數(shù)據(jù)與輸入物理量之間呈嚴(yán)格的線性關(guān)系,即當(dāng)輸入物理量按一定比例變化時,輸出數(shù)據(jù)也會按相同的比例變化。其特性曲線是一條直線或近似直線,如超聲波、溫度(LM35)都屬于線性傳感器。而非線性傳感器的特性曲線通常不是直線,而是曲線形狀。絕大多數(shù)的傳感器都屬于非線性,如光電傳感器、紅外傳感器、壓力傳感器等。使用非線性傳感器通常需要采用非線性變換、曲線擬合、神經(jīng)網(wǎng)絡(luò)等方法對輸出數(shù)據(jù)進(jìn)行處理,從而得到準(zhǔn)確的物理量。這個過程一般稱為“校正”。

非線性傳感器的常見校正方法分析

非線性傳感器的常見校正方法分為模擬電路和數(shù)字電路兩類。其中模擬電路校正有算術(shù)平均法、橋路補(bǔ)償法和折線逼近法等。算術(shù)平均法通過計算上下限的平均值,尋求一條擬合曲線。橋路補(bǔ)償法是增加電阻,利用測量橋路的非線性來校正傳感器的非線性。折線逼近法則通常采用運(yùn)算放大器,當(dāng)輸入電壓為不同范圍時,相應(yīng)改變運(yùn)算放大器的增益,從而獲得所需要的斜率。相對來說,模擬電路校正法受限于模擬元件的精度、溫度漂移、噪聲等因素,很難達(dá)到很高的校正精度。

數(shù)字電路校正法即用軟件方法解決,如采用查表法修正,預(yù)先將一張表明輸入值與輸出值關(guān)系的表格寫入存儲器中?;蛘哂貌逯捣ǎ脭?shù)學(xué)公式來擬合近似的函數(shù)關(guān)系。數(shù)字電路校正法不需要過多考慮模擬元件的特性和相互影響,通過軟件編程或硬件描述語言來實現(xiàn)校正算法,設(shè)計過程相對靈活,便于修改和優(yōu)化。關(guān)于傳感器的校正方法,大部分屬于專業(yè)領(lǐng)域范疇,中小學(xué)很少關(guān)注。

用機(jī)器學(xué)習(xí)的方式探究非線性傳感器

非線性傳感器在信息科技的課堂中很常見。當(dāng)學(xué)生在真實場景中使用傳感器時,我們一般會建議其選擇最笨也最容易實施的查表法。自從BaseML出現(xiàn)后,機(jī)器學(xué)習(xí)的門檻變得越來越低了,于是筆者萌生一個想法:為什么不讓學(xué)生用機(jī)器學(xué)習(xí)的方式來訓(xùn)練一個非線性傳感器的模型?

01

傳感器數(shù)據(jù)的采集和整理

筆者選擇了“紅外測距傳感器GP2Y0A02”,這是一個典型的非線性傳感器,其特征曲線如下圖所示,圖中縱坐標(biāo)是電壓,橫坐標(biāo)是距離。

打開網(wǎng)易新聞 查看精彩圖片

采集紅外測距傳感器的數(shù)據(jù)很方便,就是在不同的測量距離記錄傳感器的數(shù)據(jù),然后轉(zhuǎn)換為電壓值即可。不同的開源硬件的工作電壓和A/D轉(zhuǎn)換器分辨率(也稱量化位數(shù))不一樣,轉(zhuǎn)換的具體計算方法也不同,如Arduino的量化位數(shù)是10位,電壓是5V。而掌控板的量化位數(shù)是12位,電壓是3.3V。標(biāo)準(zhǔn)的轉(zhuǎn)換公式為:

測量電壓=(引腳數(shù)值÷量化位數(shù))×工作電壓

筆者以白紙作為反射物,采集了23條數(shù)據(jù),隨機(jī)劃分為訓(xùn)練集和驗證集(比例為18∶5)。然后將數(shù)據(jù)分別保存為csv格式,即distance_train.csv和distance_eval.csv兩個文件,如下圖。

打開網(wǎng)易新聞 查看精彩圖片

02

用BaseML訓(xùn)練傳感器模型

首先要獲得環(huán)境,即安裝“BaseML”??梢栽谌我庖粋€Python環(huán)境中用pip命令安裝,命令為“pip install BaseML”。推薦使用XEdu一鍵安裝包,解壓后即可獲得機(jī)器學(xué)習(xí)的環(huán)境,這里不再詳細(xì)介紹。

筆者設(shè)計了多個實驗,先用線性回歸算法訓(xùn)練模型,再用多項式回歸算法。如果效果不好,再測試其他算法。

(1)實現(xiàn)線性回歸算法

在BaseML中,線性回歸模型的名稱是:LinearRegression。訓(xùn)練模型的代碼如下圖所示。

打開網(wǎng)易新聞 查看精彩圖片

在訓(xùn)練完成后,需要做驗證。筆者選擇R2評標(biāo),從下圖中可以看出,得分只有84.8%。

打開網(wǎng)易新聞 查看精彩圖片

(2)使用多項式回歸算法

在BaseML中,將線性回歸算法改為多項式回歸算法,只需要把代碼中的“LinearRegression”改為“Polynomial”,其他都保持不動。這時,可以看到R2指標(biāo)的得分達(dá)到了99.92%,如下圖。

打開網(wǎng)易新聞 查看精彩圖片

可見,多項式回歸算法能很好地擬合“紅外測距傳感器GP2Y0A02”的特征曲線。通過這一實驗,學(xué)生將體會到用采集數(shù)據(jù)、訓(xùn)練模型的方式能解決很多類似的問題。

在真實場景中應(yīng)用非線性數(shù)據(jù)模型

在訓(xùn)練出模型后,下一個問題就是如何使用。

因為BaseML是一個Python庫,其模型也只能在Python環(huán)境中使用。

因此需要將紅外測距傳感器接在能運(yùn)行Python的開源硬件上,如行空板、泰山派、靈犀板之類。

然后借助pinpong庫來讀取傳感器數(shù)據(jù),再輸入到模型中得到推理的結(jié)果,就做出了一個準(zhǔn)確的測距儀。

雖然使用BaseML就能推理模型,但筆者還是強(qiáng)烈建議使用XEduHub來推理。XEduHub是一個專用的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)推理框架,其語法特別簡單。參考代碼如下圖所示。

打開網(wǎng)易新聞 查看精彩圖片

人工智能不僅僅是一種技術(shù),還是一種科學(xué)思維和解決問題的方式。科學(xué)家們致力于開發(fā)新的算法從大量的數(shù)據(jù)中自動識別規(guī)律,得出解決問題的方案,并通過科學(xué)可量化的評估方式來改進(jìn)算法。

雖然中小學(xué)生可能還沒有能力理解機(jī)器學(xué)習(xí)的底層原理,但通過實踐操作,完全可以初步理解人工智能的基本概念、科學(xué)的思維方式和用人工智能解決問題的方式。

本文作者:

謝作如 浙江省溫州科技高級中學(xué)

王國芳 浙江省溫州市藝術(shù)學(xué)校

魏靜潔 上海外國語大學(xué)

文章刊登于《中國信息技術(shù)教育》2025年第1期

引用請注明參考文獻(xiàn):

謝作如,王國芳,魏靜潔.用BaseML探究非線性傳感器數(shù)據(jù)變化規(guī)律,2025(01):80-82.

歡迎訂閱

識別上方二維碼即可訂閱