本發(fā)明涉及電子領(lǐng)域,尤其涉及一種根據(jù)車距對車輛進行提醒的方法和裝置。
背景技術(shù):
現(xiàn)有技術(shù)中,在判斷前方車輛與本車之間的距離時,一般采用車載雷達、超聲波傳感器或射頻發(fā)射器檢測本車與前方車輛之間的距離;當(dāng)距離前方車輛過近時,車輛會發(fā)出碰撞提醒。但是,這些檢測設(shè)備昂貴,不便于推廣。
利用攝像頭采集前方圖像的方式,會節(jié)約檢測成本,現(xiàn)有技術(shù)中采用單個攝像頭采集前方圖像,通過訓(xùn)練樣本、結(jié)合小孔成像原理及本車車速的方法,確定本車與前方車輛之間的距離。
但是這種檢測方法針對車距大、車速快時的檢測效果較好,而針對車速較慢、車距較近時,則無法給出正確的提醒,尤其當(dāng)車輛距離較近、車輛行駛緩慢或者無意造成的溜車情況,這種檢測方法不會做出提醒提示。
因此,有必要改進上面提到的缺陷。
技術(shù)實現(xiàn)要素:
基于以上問題,本發(fā)明提出一種根據(jù)車距對車輛進行提醒的方法和裝置,通過獲取前方車輛對應(yīng)的前方車輛圖像,對前方車輛圖像進行圖像處理,得到前方車輛圖像中前方車輛的最終輪廓;采用四邊形將最終輪廓選中,根據(jù)四邊形上的點與前方車輛圖像中的基準(zhǔn)點之間的距離和攝像頭參數(shù),確定本車車輛與前方車輛之間的車距;根據(jù)車距與本車車輛的運行狀態(tài),若判斷需要對本車車輛進行提醒,則對本車車輛進行提醒的方式,使當(dāng)前方車輛與本車車輛的車速較慢、車距較近時,駕駛員能夠得到正確的提醒提示,尤其當(dāng)車輛距離較近、車輛行駛緩慢或者無意造成的溜車情況,采用本發(fā)明的方法能夠?qū)︸{駛員進行提示,從而減少交通事故的發(fā)生。
一方面,本發(fā)明提出一種根據(jù)車距對車輛進行提醒的方法,
包括:
處理前方車輛圖像步驟,包括:獲取前方車輛對應(yīng)的前方車輛圖像,對所述前方車輛圖像進行圖像處理,得到所述前方車輛圖像中前方車輛的最終輪廓;
確定車距步驟,包括:采用四邊形將所述最終輪廓選中,根據(jù)所述四邊形上的點與所述前方車輛圖像中的基準(zhǔn)點之間的距離和攝像頭參數(shù),確定本車車輛與所述前方車輛之間的車距;
提醒步驟,包括:根據(jù)所述車距與所述本車車輛的運行狀態(tài),若判斷需要對所述本車車輛進行提醒,則對所述本車車輛進行提醒。
此外,所述處理前方車輛圖像步驟中所述圖像處理包括:對所述前方車輛圖像進行濾波處理,得到并根據(jù)所述前方車輛的車輛位置信息與初始輪廓,檢測所述前方車輛的特征點,根據(jù)車輛檢測算法計算得到所述最終輪廓。
此外,所述根據(jù)所述車輛檢測算法計算得到所述最終輪廓,具體包括:
采用金字塔光流算法和/或均值漂移目標(biāo)跟蹤算法對所述特征點進行計算,得到所述最終輪廓。
此外,所述確定車距步驟,具體包括:采用矩形將所述最終輪廓選中,根據(jù)所述矩形的頂點與所述前方車輛圖像中的基準(zhǔn)點之間的距離計算所述矩形的寬度,若判斷所述前方車輛在所述本車車輛的視野盲區(qū)內(nèi),則根據(jù)所述矩形的寬度與前一幀所述前方車輛圖像中的矩形的寬度計算所述車距。
此外,所述確定車距步驟,具體包括:采用矩形將所述最終輪廓選中,根據(jù)所述矩形的頂點與所述前方車輛圖像中的基準(zhǔn)點之間的距離得到所述矩形的底邊的坐標(biāo),若判斷所述前方車輛不在所述本車車輛的視野盲區(qū)內(nèi),則根據(jù)所述矩形的底邊的坐標(biāo)與攝像頭參數(shù)計算所述車距,計算公式為D=H*tan(α-arctan((y-Cy)/Fy));
其中,D為所述車距,H為攝像頭的安裝高度,α為攝像頭安裝的俯仰角,y為所述矩形的底邊的y軸坐標(biāo),Cy為攝像頭的y軸焦點,F(xiàn)y為攝像頭的y軸焦距。
此外,采用小孔成像原理和相似三角形原理計算所述車距。
此外,所述提醒步驟中對所述本車車輛進行提醒,具體包括:對所述本車車輛進行碰撞提醒或啟動提醒。
此外,所述提醒步驟,具體包括:若所述本車車輛的運行狀態(tài)為行駛狀態(tài),所述車距小于預(yù)設(shè)第一距離閾值,且所述本車車輛沒有剎車動作,則對所述本車車輛進行所述碰撞提醒。
此外,所述提醒步驟,具體包括:若所述車距大于預(yù)設(shè)第二距離閾值,小于預(yù)設(shè)第三距離閾值,且所述本車車輛的運行狀態(tài)為停止?fàn)顟B(tài),若判斷所述車距隨著時間增加,則對所述本車車輛進行所述啟動提醒。
另一方面,本發(fā)明提出一種根據(jù)車距對車輛進行提醒的裝置,包括:
處理前方車輛圖像模塊,用于:獲取前方車輛對應(yīng)的前方車輛圖像,對所述前方車輛圖像進行圖像處理,得到所述前方車輛圖像中前方車輛的最終輪廓;
確定車距模塊,用于:采用四邊形將所述最終輪廓選中,根據(jù)所述四邊形上的點與所述前方車輛圖像中的基準(zhǔn)點之間的距離和攝像頭參數(shù),確定本車車輛與所述前方車輛之間的車距;
提醒模塊,用于:根據(jù)所述車距與所述本車車輛的運行狀態(tài),若判斷需要對所述本車車輛進行提醒,則對所述本車車輛進行提醒。
采用上述技術(shù)方案,具有以下有益效果:
通過獲取前方車輛對應(yīng)的前方車輛圖像,對前方車輛圖像進行圖像處理,得到前方車輛圖像中前方車輛的最終輪廓;采用四邊形將最終輪廓選中,根據(jù)四邊形上的點與前方車輛圖像中的基準(zhǔn)點之間的距離和攝像頭參數(shù),確定本車車輛與前方車輛之間的車距;根據(jù)車距與本車車輛的運行狀態(tài),若判斷需要對本車車輛進行提醒,則對本車車輛進行提醒的方式,使當(dāng)前方車輛與本車車輛的車速較慢、車距較近時,駕駛員能夠得到正確的提醒提示,尤其當(dāng)車輛距離較近、車輛行駛緩慢或者無意造成的溜車情況,采用本發(fā)明的方法能夠?qū)︸{駛員進行提示,從而減少交通事故的發(fā)生。
附圖說明
圖1是根據(jù)本發(fā)明一個實施例的根據(jù)車距對車輛進行提醒的方法的流程圖;
圖2是根據(jù)本發(fā)明另一個實施例的根據(jù)車距對車輛進行提醒的方法的流程圖;
圖3是根據(jù)本發(fā)明另一個實施例的根據(jù)車距對車輛進行提醒的方法中矩形和基準(zhǔn)點的示意圖;
圖4是根據(jù)本發(fā)明另一個實施例的根據(jù)車距對車輛進行提醒的方法中本車車輛的視野盲區(qū)的示意圖;
圖5是根據(jù)本發(fā)明另一個實施例的根據(jù)車距對車輛進行提醒的方法的流程圖;
圖6是根據(jù)本發(fā)明另一個實施例的根據(jù)車距對車輛進行提醒的裝置的模塊圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參照圖1,本發(fā)明提出一種根據(jù)車距對車輛進行提醒的方法,
包括:
處理前方車輛圖像步驟S001,包括:獲取前方車輛對應(yīng)的前方車輛圖像,對前方車輛圖像進行圖像處理,得到前方車輛圖像中前方車輛的最終輪廓;
確定車距步驟S002,包括:采用四邊形將最終輪廓選中,根據(jù)四邊形上的點與前方車輛圖像中的基準(zhǔn)點之間的距離和攝像頭參數(shù),確定本車車輛與前方車輛之間的車距;
提醒步驟S003,包括:根據(jù)車距與本車車輛的運行狀態(tài),若判斷需要對本車車輛進行提醒,則對本車車輛進行提醒。
在處理前方車輛圖像步驟S001中,根據(jù)安裝在車輛上的攝像裝置獲取前方車輛圖像,在其中的一個實施例中,攝像裝置安裝在車輛的前擋風(fēng)玻璃上,在其中的一個實施例中,攝像裝置安裝在前擋風(fēng)玻璃的內(nèi)部,攝像裝置為攝像頭。
對前方車輛圖像進行圖像處理時,包括對圖像進行去噪聲、濾波等處理。
在其中的一個實施例中,參照圖2,說明圖像處理和得到最終輪廓的過程。
步驟S201,采用攝像頭拍攝前方車輛圖像;
步驟S202,讀取拍攝的前方車輛圖像;
步驟S203,對前方車輛圖像進行截取,將感興趣的區(qū)域截取出來,如將消失線以下的圖像截取出來;
步驟S204,自適應(yīng)計算前方車輛圖像的閾值,對前方車輛圖像進行閾值處理、然后進行濾波處理;
步驟S205,得到前方車輛圖像的初始輪廓,根據(jù)初始輪廓確定車輛的大概位置;
步驟S206,判斷前一幀前方車輛圖像中是否已經(jīng)檢測到車輛的位置,若是,則執(zhí)行步驟S207,若否,則執(zhí)行步驟S210;
步驟S207,根據(jù)前一幀車輛的位置確定當(dāng)前幀前方車輛圖像中車輛的大概位置;
步驟S208,利用Harris算法得到車輛的特征點,然后利用金字塔光流算法對前一幀和當(dāng)前幀前方車輛圖像進行差分計算,得到當(dāng)前幀前方車輛的特征點,得到當(dāng)前幀的車輛位置;
步驟S209,利用均值漂移目標(biāo)跟蹤算法(Mean-Shift)對前方車輛圖像進行處理,得到前方車輛的最終輪廓與車輛位置;
步驟S210,對初始輪廓的圖像運用DPM(Deformable Parts Model)算法,從而得到前方車輛的最終輪廓和車輛位置;
步驟S211,結(jié)束。
均值漂移目標(biāo)跟蹤算法:輸入當(dāng)前圖像以及待檢測跟蹤區(qū)域,算法通過分別計算目標(biāo)區(qū)域和候選區(qū)域內(nèi)像素的特征值概率,得到關(guān)于目標(biāo)模型和候選模型的描述,然后利用相似函數(shù)度量初始幀目標(biāo)模型和當(dāng)前幀的候選模版的相似性,選擇使相似函數(shù)最大的候選模型并得到關(guān)于目標(biāo)模型的Meanshift向量,通過不斷迭代計算Meanshift向量,算法最終將收斂到目標(biāo)的真實位置,達到跟蹤的目的。
在確定車距步驟S002中,采用四邊形將最終輪廓選中,當(dāng)確定了前方車輛的位置和最終輪廓后,采用四邊形將最終輪廓框起來,四邊形與最終輪廓為包含關(guān)系,最終輪廓上的點與四邊形上的點可部分重合,如四邊形的上邊和下邊分別與最終輪廓的車頭的橫線和車尾的橫線重合。如采用矩形或正方形將最終輪廓框起來。然后通過計算四邊形上的點與前方車輛圖像中的基準(zhǔn)點之間的距離,確定本車車輛與前方車輛之間的車距。以采用矩形將最終輪廓框起來為例進行說明,參照圖3,圖3為矩形和基準(zhǔn)點的示意圖,根據(jù)矩形第一個頂點的坐標(biāo)值x1、y1,第二個頂點的坐標(biāo)值x2、y1和第三個頂點的坐標(biāo)值x1、y3,計算矩形的寬度為x2與x1之間的差值,矩形的高度為y3與y1之間的差值,根據(jù)小孔成像原理和相似三角形原理計算車距。
計算公式:D=H*tan(α-arctan((y-Cy)/Fy)) (1-1);
其中H表示攝像頭安裝點距離地面的高度,α表示攝像頭安裝時的俯仰角(定義為攝像頭中軸線與地面垂直線之間的夾角,這個角度對于已經(jīng)安裝好的攝像頭是固定的。該值可以通過攝像頭內(nèi)部參數(shù)、盲區(qū)點到攝像頭的距離、盲區(qū)點的成像點和攝像頭安裝高度等值計算出來。),y值為四邊形的底邊y值,即圖3中的y3值,Cy表示攝像頭的y軸焦點,F(xiàn)y是攝像頭的y軸焦距。
視野盲區(qū)之外的距離可以由上式算出。上式中H、α、Cy、Fy都是固定的,唯一變化的是y值。
參照圖4,說明本車車輛的視野盲區(qū),H為攝像頭距離地面的高度,盲區(qū)點B為攝像頭視角范圍內(nèi),能夠拍攝到的在地面上距離本車車頭距離最近的一點。盲區(qū)距離distance-blind為攝像頭在地面上的投影點A與盲區(qū)點B之間的距離。
當(dāng)前方車輛在本車車輛的視野盲區(qū)以外時,采用公式(1-1)計算車距,當(dāng)前方車輛的部分車身在本車車輛的視野盲區(qū)以內(nèi)時,由于此時前方車輛的最終輪廓的車尾的底邊無法確定,所以不能直接采用公式(1-1)計算車距。
參照圖5,說明當(dāng)前方車輛的部分車身在本車車輛的視野盲區(qū)以內(nèi)時,計算車距的步驟。
步驟S501,若前一幀前方車輛圖像的車尾在視野盲區(qū)以外時,獲取前一幀前方車輛圖像中的矩形的寬度或高度;
步驟S502,根據(jù)前一幀的矩形的寬度和車距,結(jié)合當(dāng)前幀的矩形的寬度,然后根據(jù)下面的公式(1-2)計算車距。
在視野盲區(qū)之內(nèi),由于無法檢測出前方車輛的底邊,但是此時前方車輛的左右邊框是能準(zhǔn)確檢測出的,此時需要通過前一幀與當(dāng)前幀的選中車輛的矩形的寬度的比例,根據(jù)小孔成像原理和相似三角形原理計算前方車輛距離本車車輛的車距。
假設(shè)前一幀前方車輛與本車車輛的車距為DO,前一幀前方車輛的矩形的寬度為WO=(X2-X1),當(dāng)前幀前方車輛的矩形的寬度為W1=(X2’-X1’),當(dāng)前車距D1為未知。則:
D1=W0*D0/W1 (1-2);
根據(jù)公式(1-2)計算車距。
在提醒步驟S003中,根據(jù)車距與本車車輛的運行狀態(tài),判斷是否需要對本車車輛進行提醒。
對本車車輛進行提醒,具體包括:對本車車輛進行碰撞提醒或啟動提醒。
若本車車輛的運行狀態(tài)為行駛狀態(tài),車距小于預(yù)設(shè)第一距離閾值,且本車車輛沒有剎車動作,則對本車車輛進行碰撞提醒。當(dāng)車輛進行了剎車,則停止提醒,但是若本車車輛再次啟動,且與前方車輛之間的距離再次小于第一距離閾值,則繼續(xù)進行提醒。
若車距大于預(yù)設(shè)第二距離閾值,小于預(yù)設(shè)第三距離閾值,且本車車輛的運行狀態(tài)為停止?fàn)顟B(tài),若判斷車距隨著時間增加,則對本車車輛進行啟動提醒。當(dāng)在等待信號燈時,前方車輛已經(jīng)啟動后,則對本車車輛進行啟動提醒,若檢測到本車車輛已經(jīng)啟動,或者車距已經(jīng)大于第三距離閾值,則停止提醒。
提醒提示包括:通過聲音和/或圖像的方式進行提醒提示。
通過獲取前方車輛對應(yīng)的前方車輛圖像,對前方車輛圖像進行圖像處理,得到前方車輛圖像中前方車輛的最終輪廓;采用四邊形將最終輪廓選中,根據(jù)四邊形上的點與前方車輛圖像中的基準(zhǔn)點之間的距離和攝像頭參數(shù),確定本車車輛與前方車輛之間的車距;根據(jù)車距與本車車輛的運行狀態(tài),若判斷需要對本車車輛進行提醒,則對本車車輛進行提醒的方式,使當(dāng)前方車輛與本車車輛的車速較慢、車距較近時,駕駛員能夠得到正確的提醒提示,尤其當(dāng)車輛距離較近、車輛行駛緩慢或者無意造成的溜車情況,采用本發(fā)明的方法能夠?qū)︸{駛員進行提示,從而減少交通事故的發(fā)生。
在其中的一個實施例中,處理前方車輛圖像步驟中圖像處理包括:對前方車輛圖像進行濾波處理,得到并根據(jù)前方車輛的車輛位置信息與初始輪廓,檢測前方車輛的特征點,根據(jù)車輛檢測算法計算得到最終輪廓。通過對圖像進行濾波處理,使圖像中的干擾被去掉,根據(jù)車輛位置信息與初始輪廓檢測得到車輛的特征點,使最終輪廓更加精準(zhǔn)的被檢測出來。
在其中的一個實施例中,根據(jù)車輛檢測算法計算得到最終輪廓,具體包括:
采用金字塔光流算法和/或均值漂移目標(biāo)跟蹤算法對特征點進行計算,得到最終輪廓。采用這兩種方法之一或者結(jié)合的方式檢測最終輪廓,使得到的最終輪廓更加準(zhǔn)確。
在其中的一個實施例中,確定車距步驟,具體包括:采用矩形將最終輪廓選中,根據(jù)矩形的頂點與前方車輛圖像中的基準(zhǔn)點之間的距離計算矩形的寬度,若判斷前方車輛在本車車輛的視野盲區(qū)內(nèi),則根據(jù)矩形的寬度與前一幀前方車輛圖像中的矩形的寬度計算車距。
當(dāng)前方車輛在本車車輛的視野盲區(qū)內(nèi)時,本車車輛的矩形的底邊的y值無法正確得到,需要借助前一幀前方車輛圖像中的車距與矩形的寬度計算車距。
在其中的一個實施例中,確定車距步驟,具體包括:采用矩形將最終輪廓選中,根據(jù)矩形的頂點與前方車輛圖像中的基準(zhǔn)點之間的距離得到矩形的底邊的坐標(biāo),若判斷前方車輛不在本車車輛的視野盲區(qū)內(nèi),則根據(jù)矩形的底邊的坐標(biāo)與攝像頭參數(shù)計算車距,計算公式為D=H*tan(α-arctan((y-Cy)/Fy));
其中,D為車距,H為攝像頭的安裝高度,α為攝像頭安裝的俯仰角,y為矩形的底邊的y軸坐標(biāo),Cy為攝像頭的y軸焦點,F(xiàn)y為攝像頭的y軸焦距。
在其中的一個實施例中,采用小孔成像原理和相似三角形原理計算車距。
根據(jù)攝像頭距離地面的高度,利用小孔成像原理和相似三角形原理,可以計算出車距。
在其中的一個實施例中,提醒步驟中對本車車輛進行提醒,具體包括:對本車車輛進行碰撞提醒或啟動提醒。當(dāng)前方車輛與本車車輛之間的距離過于近時,此時需要對本車車輛進行碰撞提醒。當(dāng)車輛在信號燈路口時,若前方車輛已經(jīng)開啟啟動,則本車車輛需要跟上,此時,對本車車輛進行啟動提醒。通過提醒的方式,使駕駛員更夠迅速的對當(dāng)前的情況作出反應(yīng)。
在其中的一個實施例中,提醒步驟,具體包括:若本車車輛的運行狀態(tài)為行駛狀態(tài),車距小于預(yù)設(shè)第一距離閾值,且本車車輛沒有剎車動作,則對本車車輛進行碰撞提醒。通過將車距與預(yù)設(shè)第一距離閾值做比較,使當(dāng)本車車輛的運行狀態(tài)為行駛狀態(tài)時,且沒有進行剎車動作的情況下,能夠?qū)︸{駛員發(fā)出碰撞提醒,使駕駛員及時的剎車或者進行其它處理,以避免車輛碰撞。預(yù)設(shè)第一距離閾值為預(yù)設(shè)的第一距離閾值。
在其中的一個實施例中,提醒步驟,具體包括:若車距大于預(yù)設(shè)第二距離閾值,小于預(yù)設(shè)第三距離閾值,且本車車輛的運行狀態(tài)為停止?fàn)顟B(tài),若判斷車距隨著時間增加,則對本車車輛進行啟動提醒。當(dāng)車距在預(yù)設(shè)第二距離閾值和預(yù)設(shè)第三距離閾值之間時,說明本車車輛與前方車輛之間的車距為安全車距,那么當(dāng)前方車輛啟動后,兩車之間的車距越來越大,且檢測本車車輛為停止?fàn)顟B(tài),那么需要對本車車輛進行啟動提醒,提示駕駛員可以啟動車輛了。
參照圖6,本發(fā)明還提出一種根據(jù)車距對車輛進行提醒的裝置,包括:
處理前方車輛圖像模塊601,用于:獲取前方車輛對應(yīng)的前方車輛圖像,對前方車輛圖像進行圖像處理,得到前方車輛圖像中前方車輛的最終輪廓;
確定車距模塊602,用于:采用四邊形將最終輪廓選中,根據(jù)四邊形上的點與前方車輛圖像中的基準(zhǔn)點之間的距離和攝像頭參數(shù),確定本車車輛與前方車輛之間的車距;
提醒模塊603,用于:根據(jù)車距與本車車輛的運行狀態(tài),若判斷需要對本車車輛進行提醒,則對本車車輛進行提醒。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。