本發(fā)明涉及測距方法領(lǐng)域,尤其涉及一種單攝像頭測距方法。
背景技術(shù):
目前利用攝像頭進(jìn)行測距的方法,最常見的是雙目視差法,這種方法用兩個(gè)攝像頭采集圖像數(shù)據(jù),并根據(jù)物體上的某一點(diǎn)在兩個(gè)攝像頭中的視差成像確定該點(diǎn)到攝像頭的距離,但雙目視差法測距硬件成本較高,計(jì)算量大,測距結(jié)果易受特征點(diǎn)誤匹配的影響;現(xiàn)有用單個(gè)攝像頭測量兩點(diǎn)距離的方法通常為攝像頭加激光發(fā)射機(jī)的方法,但相比普通光源,激光發(fā)射機(jī)成本較高,而且操作起來也比較繁瑣;現(xiàn)在也有通過移動(dòng)攝像頭和三角函數(shù)計(jì)算獲得距離信息的方法,但其測量系統(tǒng)需要有個(gè)移動(dòng)過程才能完成距離測量,不具備良好的實(shí)時(shí)性;也有利用對單目攝像頭測距模型建模以獲得距離信息的方法,但其過程需要經(jīng)過大量的三角函數(shù)計(jì)算,計(jì)算方法較為復(fù)雜,無疑增加了計(jì)算成本和延長了測距時(shí)間,不具備良好的用戶體驗(yàn),也難以滿足實(shí)時(shí)性要求。
如何利用單個(gè)攝像頭準(zhǔn)確、方便、實(shí)時(shí)的測量攝像頭到物體的距離,成為亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種單攝像頭測距方法,目的在于解決傳統(tǒng)的測距方法中利用激光發(fā)射機(jī)測距成本較高的問題,還用于解決利用三角函數(shù)測距法測距計(jì)算方法復(fù)雜、且不具備良好實(shí)時(shí)性的問題。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
一種單攝像頭測距方法,包括以下步驟:
s1:在采樣物體表面粘貼目標(biāo)圖像,目標(biāo)圖像中有一條寬度為x厘米的豎直線,豎直線的顏色與目標(biāo)圖像的背景顏色不同;在目標(biāo)圖像的正前方、距離目標(biāo)圖像l厘米處放置并啟動(dòng)攝像頭;
s2:將攝像頭采集到的圖像發(fā)送給微處理器進(jìn)行預(yù)處理,并將攝像頭采集到的圖像轉(zhuǎn)換為黑白圖像,豎直線所在區(qū)域?yàn)楹谏珗D像,目標(biāo)圖像背景所在區(qū)域?yàn)榘咨珗D像;
s3:利用微處理器在黑白圖像上取m行、n列共m*n個(gè)點(diǎn)作為采樣點(diǎn),定義數(shù)字“0”和“1”分別代表處于黑白圖像黑色區(qū)域的采樣點(diǎn)和處于黑白圖像白色區(qū)域的采樣點(diǎn);
s4:將m*n個(gè)采樣點(diǎn)中數(shù)字為“0”的采樣點(diǎn)作為特征點(diǎn),利用微處理器獲取并計(jì)算平均每行的特征點(diǎn)個(gè)數(shù),即平均每行“0”的個(gè)數(shù);
s5:改變攝像頭與采樣物體之間的相對距離l共q次(q>3),每次改變后均重復(fù)s1-s4步驟,其中,第q次改變后的相對距離表示為lq,第q次平均每行的特征點(diǎn)個(gè)數(shù)表示為
s6:建立
s7:在任意被測物體前粘貼步驟s1所述的目標(biāo)圖像,并在被測物體前任意距離處放置攝像頭,重復(fù)步驟s2-s4,得到由被測物體生成的黑白圖像中平均每行特征點(diǎn)個(gè)數(shù),調(diào)用步驟s6中的非線性近似方程,即可得到被測物體與攝像頭之間的距離l。
所述步驟s2包括以下步驟:
s21:將攝像頭采集到的圖像發(fā)送給微處理器,微處理器對攝像頭采集到的圖像進(jìn)行預(yù)處理,濾除干擾信號(hào),并輸出灰度圖像;
s22:微處理器對灰度圖像進(jìn)行進(jìn)一步處理,將灰度圖像轉(zhuǎn)化為黑白圖像。
步驟s3所述的利用微處理器在黑白圖像上取m*n個(gè)點(diǎn)作為采樣點(diǎn)的具體過程如下:在黑白圖像的左上角選一起點(diǎn),起點(diǎn)必須在黑色圖像區(qū)域的左邊,并水平向右以相等間距取n個(gè)點(diǎn)作為第一行采樣點(diǎn),所設(shè)間距要使第n個(gè)點(diǎn)必須在豎直線對應(yīng)的黑色圖像右邊且不能在整幅圖像之外;然后以第一行的每個(gè)點(diǎn)作為起始點(diǎn),分別豎直向下取(m-1)個(gè)點(diǎn),且使第m個(gè)點(diǎn)不能在圖像之外,以形成m行n列共m*n個(gè)點(diǎn)作為采樣點(diǎn)。
步驟s4中所述的計(jì)算平均每行的特征點(diǎn)個(gè)數(shù)的方法為:
其中,q代表采樣次數(shù),m代表采樣點(diǎn)行數(shù),kmq表示第q次采樣第m行的特征點(diǎn)個(gè)數(shù),
所述步驟s6包括以下步驟:
s61:通過q次采樣,建立平均每行特征點(diǎn)個(gè)數(shù)
s62:利用matlab中的非線性回歸函數(shù)工具nlinfit()求解相對距離l與平均每行特征點(diǎn)個(gè)數(shù)
本發(fā)明的有益效果:
利用本發(fā)明所述的一種單攝像頭測距方法,無需使用造價(jià)昂貴的激光發(fā)射機(jī),也不需經(jīng)過復(fù)雜計(jì)算,只需將目標(biāo)圖像粘貼在采樣物體前方,在目標(biāo)圖像生成的黑白圖像上取m*n個(gè)采樣點(diǎn),求解攝像頭與采樣物體之間相對距離和平均每行特征點(diǎn)個(gè)數(shù)的非線性近似方程;需測距時(shí),只需將被測物體表面粘貼上述的目標(biāo)圖像,然后在被測距離處利用微處理器取m*n個(gè)采樣點(diǎn),得到平均每行特征點(diǎn)個(gè)數(shù),代入非線性近似方程即可求得被測距離;本發(fā)明所述的一種單攝像頭測距方法具有干擾小(針對超聲波),硬件成本低,體積小,結(jié)構(gòu)簡單,操作方便(針對加激光傳感器的情況),測距方式靈敏、快速,實(shí)時(shí)性好(針對需要移動(dòng)過程和三角函數(shù)計(jì)算的情況),測距精度高等優(yōu)點(diǎn),在室內(nèi)移動(dòng)機(jī)器人、工業(yè)自動(dòng)化車間等需要檢測距離的領(lǐng)域具有廣闊的應(yīng)用前景。
附圖說明
為了更清楚地說明本發(fā)明具體實(shí)施方式中的技術(shù)方案,下面將對具體實(shí)施方式描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施方式,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明的方法流程圖;
圖2為微處理器將攝像頭采集到的圖像轉(zhuǎn)換為灰度圖像的示意圖;
圖3為微處理器將攝像頭采集到的圖像轉(zhuǎn)換為黑白圖像并取采樣點(diǎn)的示意圖;
圖4為分別定義位于黑色區(qū)域和位于白色區(qū)域內(nèi)的采樣點(diǎn)為“0”和“1”的示意圖;
圖5為利用matlab得到的非線性回歸分析結(jié)果示意圖。
具體實(shí)施方式
下面將結(jié)合附圖對本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示:本發(fā)明所述的一種單攝像頭測距方法,利用單攝像頭即可測出攝像頭與采樣物體之間的距離,具體包括以下步驟:
s1:在采樣物體表面粘貼目標(biāo)圖像,目標(biāo)圖像中有一條寬度為x厘米的豎直線,豎直線的顏色與目標(biāo)圖像的背景顏色不同;在目標(biāo)圖像的正前方、距離目標(biāo)圖像l厘米處放置并啟動(dòng)攝像頭;
其中,優(yōu)選方案為:豎直線采用黑色直線,目標(biāo)圖像的背景顏色為白色或者灰色,黑色與白色或灰色對比明顯,有利于微處理器對攝像頭采集的圖像進(jìn)行處理;攝像頭焦距固定不變,攝像頭采用逐行掃描方式,攝像頭在采集圖像時(shí)需要保證掃描行所在平面與目標(biāo)圖像所在的平面保持平行,同時(shí)需要保證掃描行與豎直線垂直;同時(shí)保持光源穩(wěn)定。
s2:將攝像頭采集到的圖像發(fā)送給微處理器進(jìn)行預(yù)處理,并將攝像頭采集到的圖像轉(zhuǎn)換為黑白圖像,豎直線所在區(qū)域?yàn)楹谏珗D像,目標(biāo)圖像背景所在區(qū)域?yàn)榘咨珗D像;具體包括以下步驟:
s21:如圖2所示:首先將攝像頭采集到的圖像發(fā)送給微處理器進(jìn)行預(yù)處理,濾除干擾信號(hào),并輸出灰度圖像;
s22:如圖3所示:利用微處理器將預(yù)處理后的灰度圖像轉(zhuǎn)換為黑白圖像;
這里需要說明的是:利用微處理器對攝像頭采集到的圖像進(jìn)行預(yù)處理并輸出灰度圖像屬于現(xiàn)有成熟技術(shù),利用微處理器將灰度圖像轉(zhuǎn)換為黑白圖像也屬于現(xiàn)有成熟技術(shù),這里不再贅述。
s3:如圖4所示:利用微處理器在黑白圖像上取m行、n列共m*n個(gè)點(diǎn)作為采樣點(diǎn),定義數(shù)字“0”和“1”分別代表處于黑色區(qū)域的采樣點(diǎn)和處于白色區(qū)域的采樣點(diǎn);
在黑白圖像上取m*n個(gè)點(diǎn)作為采樣點(diǎn)的具體過程如下:在黑白圖像的左上角選一起點(diǎn),起點(diǎn)必須在黑色圖像區(qū)域的左邊,并水平向右以相等間距取n個(gè)點(diǎn)作為第一行采樣點(diǎn),所設(shè)間距要使第n個(gè)點(diǎn)必須在豎直線對應(yīng)的黑色圖像右邊且不能在整幅圖像之外;然后以第一行的每個(gè)點(diǎn)作為起始點(diǎn),分別豎直向下取(m-1)個(gè)點(diǎn),且使第m個(gè)點(diǎn)不能在圖像之外,以形成m行n列共m*n個(gè)點(diǎn)作為采樣點(diǎn)。
s4:定義m*n個(gè)采樣點(diǎn)中數(shù)字為“0”的采樣點(diǎn)作為特征點(diǎn),利用微處理器獲取并計(jì)算平均每行的特征點(diǎn)個(gè)數(shù),即平均每行“0”的個(gè)數(shù);所述的計(jì)算平均每行的特征點(diǎn)個(gè)數(shù)的方法為:
其中,q代表采樣次數(shù),m代表采樣點(diǎn)行數(shù),kmq表示第q次采樣第m行的特征點(diǎn)個(gè)數(shù),
s5:改變攝像頭與采樣物體之間的相對距離l共q次(q>3),每次改變后均重復(fù)s1-s4步驟,其中,第q次改變后的相對距離記為lq,相對距離為lq時(shí)對應(yīng)的平均每行特征點(diǎn)個(gè)數(shù)記為
s6:建立
s61:通過q次采樣,建立平均每行特征點(diǎn)個(gè)數(shù)
s62:利用matlab中的非線性回歸函數(shù)工具nlinfit()求解相對距離l與平均每行特征點(diǎn)個(gè)數(shù)
s7:在任意被測物體前粘貼步驟s1所述的目標(biāo)圖像,并在被測物體前任意距離處放置攝像頭,重復(fù)步驟s2-s4,得到由被測物體生成的黑白圖像中平均每行特征點(diǎn)個(gè)數(shù),調(diào)用步驟s6中的非線性近似方程,即可得到被測物體與攝像頭之間的距離l。
利用本發(fā)明所述的一種單攝像頭測距方法,無需使用造價(jià)昂貴的激光發(fā)射機(jī),也不需經(jīng)過復(fù)雜計(jì)算,只需將目標(biāo)圖像粘貼在采樣物體前方,在目標(biāo)圖像生成的黑白圖像上取m*n個(gè)采樣點(diǎn),求解攝像頭與采樣物體之間相對距離和平均每行特征點(diǎn)個(gè)數(shù)的非線性近似方程;需測距時(shí),只需將被測物體表面粘貼上述的目標(biāo)圖像,然后在被測距離處利用微處理器取m*n個(gè)采樣點(diǎn),得到平均每行特征點(diǎn)個(gè)數(shù),代入非線性近似方程即可求得被測距離。
下面結(jié)合實(shí)施例對本發(fā)明所述的一種單攝像頭測距方法進(jìn)行進(jìn)一步說明:
s1:在采樣物體表面粘貼目標(biāo)圖像,目標(biāo)圖像中有一條寬度為x厘米的黑色豎直線,目標(biāo)圖像的背景為白色;在目標(biāo)圖像的正前方、距離目標(biāo)圖像l厘米處放置并啟動(dòng)攝像頭;所述的攝像頭采用ov7620數(shù)字?jǐn)z像頭,分辨率為640*480,逐行掃描方式,目標(biāo)圖像中豎直線的寬度為x=1.7厘米。
s2:將攝像頭采集到的圖像發(fā)送給微處理器進(jìn)行預(yù)處理,并將攝像頭采集到的圖像轉(zhuǎn)換為黑白圖像,豎直線所在區(qū)域?yàn)楹谏珗D像,目標(biāo)圖像背景所在區(qū)域?yàn)榘咨珗D像,具體包括以下步驟:
s21:首先將攝像頭采集到的圖像發(fā)送給微處理器進(jìn)行預(yù)處理,濾除干擾信號(hào),并輸出灰度圖像;
s22:利用微處理器將預(yù)處理后的灰度圖像轉(zhuǎn)換為黑白圖像;
所述微處理器采用mk60dn512vlq10,mk60dn512vlq10為是32位armcortex-m4處理器,內(nèi)核頻率高達(dá)100mhz,完全能夠滿足圖像數(shù)據(jù)的處理需求。
s3:利用微處理器在黑白圖像上取m*n個(gè)點(diǎn)作為采樣點(diǎn),定義數(shù)字“0”和“1”分別代表處于黑色區(qū)域的采樣點(diǎn)和處于白色區(qū)域的采樣點(diǎn),具體的m=60,n=260;
s4:定義m*n個(gè)采樣點(diǎn)中數(shù)字為“0”的采樣點(diǎn)作為特征點(diǎn),利用微處理器獲取并計(jì)算平均每行特征點(diǎn)個(gè)數(shù),即平均每行“0”的個(gè)數(shù);所述的計(jì)算平均每行的特征點(diǎn)個(gè)數(shù)的方法為:
其中,q代表采樣次數(shù),m代表采樣點(diǎn)行數(shù),kmq表示第q次采樣第m行的特征點(diǎn)個(gè)數(shù),
s5:改變攝像頭與采樣物體之間的相對距離l共9次(q=9),每次改變后均重復(fù)s1-s4步驟,其中,第q次改變后的相對距離記為lq,攝像頭距離采樣物體距離為lq時(shí)對應(yīng)的平均每行的特征點(diǎn)個(gè)數(shù)記為
s6:建立
s61:通過改變相對距離進(jìn)行q次采樣,建立平均每行特征點(diǎn)個(gè)數(shù)
s62:利用matlab中的非線性回歸函數(shù)工具nlinfit()求解相對距離l與平均每行特征點(diǎn)個(gè)數(shù)
觀察數(shù)據(jù)后發(fā)現(xiàn),相對距離lq與平均每行特征點(diǎn)數(shù)
于是得到:
其中a,b,c為回歸系數(shù),因此利用matlab中的非線性回歸函數(shù)工具nlinfit(x,y,f,[0;0;0]),求得回歸系數(shù)a,b,c的值,具體的,執(zhí)行程序與執(zhí)行結(jié)果如下,并得到如圖5所示的非線性回歸分析結(jié)果示意圖:
l=[5,7,10,15,20,25,30,35,40];
k=[84,59,44,30,24,20,17,13,12];
f=@(beta,l)beta(1)./(l+beta(2))+beta(3);
beta=nlinfit(l,k,f,[0;0;0]);
a=beta(1),b=beta(2),c=beta(3)
ll=1:.1:45;
kk=a./(ll+b)+c;
plot(l,k,'o',ll,kk)
a=
412.0258
b=
0.1004
c=
2.6106
于是,得到相對距離l與平均每行特征點(diǎn)個(gè)數(shù)k的非線性近似方程為:
s7:在任意被測物體前粘貼步驟s1所述的目標(biāo)圖像,并在被測物體前任意距離處放置攝像頭,重復(fù)步驟s2-s4,得到由被測物體生成的黑白圖像中平均每行特征點(diǎn)個(gè)數(shù),調(diào)用步驟s6中的非線性近似方程,即可得到被測物體與攝像頭之間的距離l,本實(shí)施例中,在不同的相對距離下,相對距離l的測量值與相對距離的實(shí)際值的絕對誤差如下表所示:
通過上述實(shí)施例的測量結(jié)果可以看出,本發(fā)明所述的一種單攝像頭測距方法具有干擾小(針對超聲波),硬件成本低,體積小,結(jié)構(gòu)簡單,操作方便(針對加激光傳感器的情況),測距方式靈敏、快速,實(shí)時(shí)性好(針對需要移動(dòng)過程和三角函數(shù)計(jì)算的情況),測距精度高等優(yōu)點(diǎn),在室內(nèi)移動(dòng)機(jī)器人、工業(yè)自動(dòng)化車間等需要檢測距離的領(lǐng)域具有廣闊的應(yīng)用前景。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。