張賢達(dá)
摘 要:上課或購物的時候,我們經(jīng)常遇到需要測量距離或者物體長度的情況,身邊通常不隨身攜帶卷尺等工具。因為長度或者地形限制,卷尺在很多情況下不適用。而在這些情況下,測距的精度要求往往又不高。因此我總結(jié)了如下的問題并思考解決:在精度要求不高的情況下,使用手機(jī)上的各種傳感器以最簡便的方法來實現(xiàn)測距。
關(guān)鍵詞:智能手機(jī);測距
1 背景介紹
在我們的游玩的過程中,常常會好奇各個建筑的高度,也會想知道到下一個感興趣的地方需要多遠(yuǎn)。在我們?nèi)粘I町?dāng)中,也需要簡單的測量工作,比如測量桌子的大小,杯子的高度。在這些測距工作中,我們會遇到形形色色的問題,可能是未帶尺子,可能尺子的長度太短,也可能因為地形限制不適用普通的尺子。而這些測距工作雖然各不相同,但總體而言精度上的要求都不是特別高。
智能手機(jī)已經(jīng)是我們?nèi)粘I钪斜夭豢缮俚奈锲贰V悄苁謾C(jī)上帶有很多傳感器,如攝像頭,GPS、陀螺儀,加速度傳感器等。這些傳感器可以幫我們完成拍照、測步、定位等工作。同時智能手機(jī)的易用性與其他傳統(tǒng)工具相比具有很大的優(yōu)勢。我們可以利用智能手機(jī)的特性來完成這些測距工作。
我對智能手機(jī)測距的軟件進(jìn)行了前期的調(diào)研工作。這些軟件主要分為以下幾類:
第一類:利用參照物測距。畫面中出現(xiàn)該軟件可以識別的硬幣或者其他常見物體時,根據(jù)預(yù)存的數(shù)據(jù)以及畫面的比例可以計算出畫面中物體的長度。
第二類:利用紅外線測距。早期的智能手機(jī)會利用紅外線測距輔助對焦,但目前的智能手機(jī)幾乎都不支持此功能了。
第三類:利用兩臺固定的照相機(jī)拍攝多張照片構(gòu)建出3D圖像,使用3D圖像來獲取景深數(shù)據(jù)。但經(jīng)過調(diào)研發(fā)現(xiàn)該3D圖像的建立過程需要大量運(yùn)算,通常是在計算機(jī)上實現(xiàn),手機(jī)上實現(xiàn)會引起耗電量過大的問題。
現(xiàn)有的方法并不能很地解決該測距問題,因此我認(rèn)為提出一種簡單易行的測距方法是非常有意義的。
2 分析問題
目前我們隨身攜帶的工具中,智能手機(jī)能提供最多、最靈活的功能。因此我們選用智能手機(jī)作為測繪工具。但利用GPS,加速度儀等傳感器需要我們攜帶手機(jī)進(jìn)行移動,而在很多情況下,需要大量移動的測距是得不償失的。
紅外線發(fā)射器以及攝像頭符合遠(yuǎn)距離獲取數(shù)據(jù)的要求,而目前主流的手機(jī)基本都不支持紅外線發(fā)射功能,但攝像頭是普遍具有的功能。因此使用攝像頭進(jìn)行測距是相對較好的選擇。
同時我們需要測量的距離常常是自身到遠(yuǎn)處某一點的距離,所以將全局的畫面3D重構(gòu)得到景深數(shù)據(jù)是沒有必要的,可以通過標(biāo)明不同照片上對應(yīng)點來大幅度減少計算量。
同時查閱資料可得,攝像頭成像的原理就是光線從外部進(jìn)入攝像頭,而進(jìn)入的光線又與視角有關(guān)。因此照片上前后物體和手機(jī)是具有一定的三角函數(shù)關(guān)系。通過分析決定采取拍攝一張照片,移動一段距離再拍攝一張照片,并在兩張照片中標(biāo)明對應(yīng)點的方式來解決問題。
3 解決問題
在具體解決問題的過程中,不必尋找過于艱深的方法,而是通過簡化問題使用目前掌握的數(shù)學(xué)知識來解決該問題。
首先測距者在A處拍攝一張照片,目標(biāo)物體D與A的連線DA與拍照中軸線夾角可以由物體D在照片上的位置計算得出,即∠DAO可以計算得出:
然后該測距者往前伸手一段距離至A2處,再拍攝一張照片,同樣可以得出∠DA2O的角度:
然后根據(jù)三角形的外角等于不相鄰的兩個內(nèi)角之和得出:
根據(jù)正弦定理可知:
最后可得A2O:
∠DAO總公式為:
公式中 A2A為手伸出的距離,可以伸出一只手或者一只手臂的距離(已知);其中DO,BO,B2O可以從照片中標(biāo)注計算得出;而∠BAO,∠B2A2O為手機(jī)攝像頭視角的一半。因此總公式中各項未知量都可以得到,最后的距離A2O就可以按照總公式求得。
4 實驗驗證
考慮到安卓系統(tǒng)具有更大的開放性,采用安卓系統(tǒng)的手機(jī)來實現(xiàn)測距功能。
在android studio上,我編寫了一個簡單的實驗性安卓應(yīng)用。該應(yīng)用包含兩個頁面,一個頁面控制拍照,一個頁面在照片上表明要測量的物體。
操作流程:
(1)在拍照界面上對需要測距的物體進(jìn)行拍照。
(2)進(jìn)入標(biāo)注及計算界面,表明要測距的物體。
(3)點擊confirm按鈕,計算得到該點與攝像頭以及圖像中點所成的角度,即∠DAO。
(4)點擊return按鈕,移動手機(jī)再進(jìn)行拍照。
(5)再表明測距物體(與2中相應(yīng)物體保持一致)。
(6)填寫移動的距離并點擊Calcu按鈕得出結(jié)果。
實驗結(jié)果:
進(jìn)行了三次實驗,實驗結(jié)果誤差都控制在百分之十以內(nèi),實驗結(jié)果表明該方法具有一定精度,滿足該問題的要求。
同時在實驗中,發(fā)現(xiàn)操作流程第4步中移動手機(jī)一段距離需要有參照物,且移動時需要非常小心,在實際操作中會帶來很大的不便。這一點是本次實驗中最大的不足,需要在之后進(jìn)行改進(jìn)。
5 結(jié)論
利用智能手機(jī)進(jìn)行測距探究過程中,搜集了解決該問題現(xiàn)有的方案,發(fā)現(xiàn)各個方案都具有自身的不足之處,我認(rèn)為在這個問題上有探究的空間。首先將測距的問題總結(jié)為如下特點:精度要求不是很高,受地形等限制較小,操作簡便??紤]到普遍性以及豐富的傳感器功能,使用智能手機(jī)是較好的選擇。
在使用智能手機(jī)測距的過程中,不但簡化了操作流程,而且與其他景深方案相比,計算量上有了大幅度的減小,并且只用現(xiàn)有的數(shù)學(xué)知識就實現(xiàn)了距離的計算。這種測距方式在短距離內(nèi)具有較好的精度,長距離精度偏低,但也基本滿足了該問題的精度要求。該方法具有簡潔易用的特點。
同時該方法也具有一些缺點:兩次攝像移動的距離要已知,即需要參照物;兩次拍照后需要分別指出對應(yīng)的物品,精度要求也較高;最后,該方法影響測距精度的因素過多,比較容易造成較大的偏差。
之后,我會進(jìn)一步優(yōu)化該方法,在精度,操作簡便性上進(jìn)一步提升,同時控制好計算量,防止給智能手機(jī)帶來過大的負(fù)荷。
參考文獻(xiàn)
[1]賈秀維,黃翠榮.一種具備測距功能的手機(jī):CN,CN 201509234 U[P].2010.