王 超 張玉庭
(遼寧工程技術(shù)大學(xué)土木工程學(xué)院,遼寧 阜新 123000)
為測定基本電荷的帶電量,密立根于1906 年起用11 年時間,利用密立根油滴實驗,經(jīng)過上千個油滴的數(shù)據(jù)而最終得出結(jié)論,密立根也因此榮獲1923 年諾貝爾物理獎。在物理實驗經(jīng)過不斷改革之后,密立根油滴實驗已經(jīng)發(fā)展了數(shù)百年時間,密立根油滴實驗也在近代物理實驗中有著非常重要的地位,但目前實驗大多仍依靠手動控制儀器的開始與暫停,導(dǎo)致實驗得出的測量值與真實值差距過大,誤差常在100 倍以上。
本研究主要通過基于python 語言的圖像識別、基于機器學(xué)習(xí)長短期記憶(PTSM)的粒子篩選對實驗過程進(jìn)行全自動化處理,針對無視頻的實驗數(shù)據(jù),采用C 進(jìn)行半自動化數(shù)據(jù)處理,最終得出結(jié)果。經(jīng)多次驗證,在實驗正確,儀器誤差很小至忽略的情況下,可將誤差減小至與真值10 倍。依據(jù)的公式為:
式中b 為修正常數(shù),b=6.17×10-6,p 為大氣壓強,單位為厘米汞高。其中tg為油滴下降L 距離所測量的時間。[1,2]
圖1 原理示意圖(左)受力分析圖(右)
利用基于Python 語言的Crocker-Grier、Trackpy 算法建立密立根油滴實驗過程中的顯微鏡或輸出數(shù)據(jù)收集輸出視頻圖像識別模型,再將初步識別的粒子數(shù)據(jù)利用python 語言人工智能機器學(xué)習(xí)算法進(jìn)行相關(guān)篩選,篩選出有效粒子,進(jìn)行油滴的行為預(yù)測與邊緣修正,輸出其粒子運動數(shù)據(jù),進(jìn)一步直接計算出元電荷的數(shù)據(jù),與幾十余個利用大學(xué)物理實驗室現(xiàn)存機器的手動計算數(shù)據(jù)相對比。對于已經(jīng)出現(xiàn)的實驗數(shù)據(jù),利用C 語言進(jìn)行相關(guān)數(shù)據(jù)輔助處理。
以下為基于python 語言的圖像識別油滴粒子的識別原理分析。
將拍攝完成的格式為mp4 或mov 原視頻逐幀輸出為格式為TIFF 的圖片文件,儲存對應(yīng)圖片的對應(yīng)幀數(shù),得到一組TIFF 堆棧??赏ㄟ^幀數(shù)計算出每張圖片之間的間隔時間,一幀=1/12秒,幀數(shù)輸出對應(yīng)為圖像的識別ID,結(jié)尾不足整數(shù)幀的圖片將要求被舍去。這里以從顯微鏡鏡頭拍攝的原始實驗視頻為原視頻作為基礎(chǔ),其格式為mov,幀數(shù)為30 幀,時長為10 秒,幀寬度為1920,幀高度為1080,將其中處于第12 幀的圖像截出。對此圖像進(jìn)行灰度變換,以便于之后的圖像選取分析。
截選出圖像后,利用bpass 空間帶通濾波器工具,進(jìn)行初步的區(qū)域亮度篩選,截選出最終的原圖像,像素為100×100(圖2),理想情況下,需要的粒子像素直徑在5 至10 像素之間。若拍攝粒子在視頻顯示中不是十分明顯,可以將圖像進(jìn)行反轉(zhuǎn)處理(圖2 中),但反轉(zhuǎn)的視頻不利于之后的圖像處理,因而應(yīng)該控制視頻的底色背景為盡可能的純黑色,以凸顯出油滴粒子。
圖2 原圖像(左)反轉(zhuǎn)(中)初步篩選(右)
然后再次利用bpass 空間帶通濾波器,利用它來平滑圖像并減去背景。此時針對油滴粒子bpass 需要手動修正,這一點在機器學(xué)習(xí)中可以得到修正后的數(shù)據(jù)。利用bpass 可以得到不同像素坐標(biāo)的空間波長截止值。輸出以下5 個數(shù)據(jù)列至表格,①x形心、②y 形心、③總亮度、④回轉(zhuǎn)半徑、⑤“偏心率”,繪制亮度——回轉(zhuǎn)半徑的圖像。通過此圖像可進(jìn)行粒子的篩選,通常,最亮的粒子就是想要的粒子。在輸出的亮度——回轉(zhuǎn)半徑圖像中,在圖像右側(cè)的兩個不同的點為需求點,而在左側(cè)的點僅是由于起始圖像中的隨機噪聲而引起的。
此時,利用masscut 函數(shù)拒絕因錯誤而被篩選掉的粒子,留下正確的粒子
(圖3 左),但這個輸出的粒子僅會保存其粒子中心位置,得不到準(zhǔn)確的粒子直徑、邊緣等數(shù)據(jù),因而需要利用epretrack 輸出粒子的邊緣云圖,對密集的粒子和稀疏的粒子進(jìn)行區(qū)分,劃定其中的邊界,確定粒子的修正邊緣,這里引用的分離系數(shù)也會通過機器學(xué)習(xí)進(jìn)行相關(guān)修正。
圖3 篩選結(jié)束(左)邊緣修正(右)
通過以上的圖像識別與處理,將自動篩選掉高速的、不穩(wěn)定的、無法進(jìn)行邊緣修正的粒子,對正確的粒子進(jìn)行軌跡跟蹤與處理,最后可輸出其位移、速度等數(shù)據(jù)。最終通過代入計算可計算出電荷的值。
2.2.1 模型數(shù)據(jù)收集
實驗收集了20 余組來自遼寧工程技術(shù)大學(xué)大學(xué)物理實驗組在正確實驗的條件下由手動進(jìn)行錄制CCD 顯示器的視頻,近10 組來自天津師范大學(xué)物理系通過顯微鏡所錄制的實驗視頻。由于時間有限,模型數(shù)量收集與分析所花費的時間很長,為了得到更多的真實實驗數(shù)據(jù),本實驗利用了由北京郵電大學(xué)歐中洪教授所提供的實驗仿真程序。
2.2.2 實現(xiàn)原理
通過對每一個視頻進(jìn)行不同的圖像識別,如第一組視頻模型,利用初始的bpass 與epretrack 相關(guān)系數(shù),引入兩個修正系數(shù),在得到第一組最終數(shù)據(jù)后,與正值相對比,反向推算出這個修正系數(shù)并導(dǎo)出,仿真程序由于技術(shù)的有限性可提供粒子亮度模擬,因而可得到bpass 的修正系數(shù)。在重復(fù)多次模型訓(xùn)練后,可利用引入的修正系數(shù)對原始確認(rèn)的系數(shù)進(jìn)行修正,利用Logistic 回歸算法,最終得出精度更高、誤差更小的實驗數(shù)據(jù)。
程序主界面采用C++語言編寫,簡潔明確地提供機器學(xué)習(xí):導(dǎo)入模型、模型訓(xùn)練,主要處理:初步處理、篩選粒子、數(shù)據(jù)繪圖,輔助處理:輔助數(shù)據(jù)處理、實驗仿真等功能(圖4)。程序在前述的基于python 語言圖像識別處理后可得以下電荷——數(shù)量統(tǒng)計圖圖表,圖示為某一次正確實驗研究后所得到的圖像(圖5)。
圖4 程序主界面截圖
圖5 電荷——數(shù)量統(tǒng)計圖
使用全自動化的處理方式,與實驗室手動處理數(shù)據(jù)相比能夠?qū)⒄`差減小10 至100 倍不等,與測定正值的誤差小于10 倍(圖6、表1)。
表1 實驗數(shù)據(jù)節(jié)選
圖6 程序輸出圖
本改進(jìn)實驗中利用的圖象識別、人工智能機器學(xué)習(xí)等技術(shù)綜合運用于密立根油滴實驗,降低實驗中數(shù)據(jù)誤差。本實驗采用的python 語言圖像識別與機器學(xué)習(xí),C 語言的數(shù)據(jù)處理為大學(xué)物理實驗、近代物理實驗自動化提供了樣本,實驗程序與方法可為實際實驗智能化升級提供相關(guān)參考。