本實用新型涉及一種基于人眼定位的汽車后視鏡自動調節裝置。
背景技術:
:
近年來,汽車進入到越來越多的家庭當中,汽車的普及帶來了出行便利的優勢,與此同時引起的交通事故也在逐年增長,汽車在行駛或者泊車的過程中,由于駕駛員沒有及時了解汽車周圍的環境可能會造成交通事故,后視鏡作為輔助駕駛員觀察后方及兩側情況的工具,它是安全行車和泊車時必不可少的。
電動后視鏡作為取代傳統手動后視鏡的新設備,它有便捷的優勢,但依然有不足之處,當更換不同身材的駕駛員時,駕駛員需要在車內通過按鈕多次進行調節以獲得認為合適的后方視域,如果在駕駛過程中進行調節將分散駕駛員的注意力,存在很大的危險性,另外,有些駕駛員特別是新駕駛員,在調節后視鏡時并不掌握最佳后視鏡視野的調節原理,可能導致后視鏡視野范圍不合理,從而埋下行車的安全隱患。
技術實現要素:
:
本實用新型的目的是提供一種基于人眼定位的汽車后視鏡自動調節裝置,用以解決上述問題。
上述的目的通過以下的技術方案實現:
一種基于人眼定位的汽車后視鏡自動調節裝置,其組成包括:后視鏡本體,所述的后視鏡本體包括外殼體與鏡面,所述的外殼體與鏡面之間設置電路板,所述的鏡面上設置紅外攝像頭;
所述的紅外攝像頭安裝在在駕駛員右前上方的車內;
所述的電路板包括ARM9處理器,所述的ARM9處理器通過線路連接紅外攝像頭、存儲器、重新調整鍵、電源轉換模塊、步進電機驅動器Ⅰ、步進電機驅動器Ⅱ、步進電機驅動器Ⅲ與步進電機驅動器Ⅳ,所述的電源轉換模塊通過線路連接蓄電池,所述的蓄電池通過線路連接步進電機驅動器Ⅰ、步進電機驅動器Ⅱ、步進電機驅動器Ⅲ與步進電機驅動器Ⅳ,所述的步進電機驅動器Ⅰ通過線路連接步進電機Ⅰ,所述的步進電機驅動器Ⅱ通過線路連接步進電機Ⅱ,所述的步進電機驅動器Ⅲ通過線路連接步進電機Ⅲ,所述的步進電機驅動器Ⅳ通過線路連接步進電機Ⅳ,所述的步進電機Ⅰ與步進電機Ⅱ配合左后視鏡鏡片使用,所述的步進電機Ⅲ與步進電機Ⅳ配合右后視鏡鏡片使用。
所述的基于人眼定位的汽車后視鏡自動調節裝置,所述的紅外攝像頭型號為OV9655。
述的基于人眼定位的汽車后視鏡自動調節裝置,所述的ARM9處理器型號為S3C2440。
所述的基于人眼定位的汽車后視鏡自動調節裝置,所述的步進電機型號為28BYJ-48。
所述的基于人眼定位的汽車后視鏡自動調節裝置,所述的步進電機驅動器型號為L298N。
有益效果:
1.本實用新型采用一個重新調整按鍵一鍵式操作,駕駛員操作輕松、簡單、快速、方便。
2.本實用新型使用單個攝像頭對駕駛員眼部定位,可用軟件實現圖像矯正,成本低、定位準確。
3.本實用新型采用步進電機作為后視鏡片驅動,后視鏡片調節角度更加精確。
4.本實用新型采用紅外攝像頭使得夜間后視鏡片調節不受影響。
附圖說明:
附圖1是本實用新型的電路流程圖。
附圖2是本實用新型的車內側視圖。
附圖3是本實用新型的駕駛員眼部的空間移動區域
附圖4是本實用新型的透視投影模型A。
附圖5是本實用新型的透視投影模型B。
附圖6是本實用新型的坐標區域矯正過程。
附圖7是本實用新型的后視鏡片內外移動范圍。
附圖8是本實用新型的后視鏡片上下移動范圍。
具體實施方式:
一種基于人眼定位的汽車后視鏡自動調節裝置,其組成包括:后視鏡本體,所述的后視鏡本體包括外殼體與鏡面,所述的外殼體與鏡面之間設置電路板,所述的鏡面上設置紅外攝像頭;
所述的紅外攝像頭安裝在在駕駛員右前上方的車內;
所述的電路板包括ARM9處理器,所述的ARM9處理器通過線路連接紅外攝像頭、存儲器、重新調整鍵、電源轉換模塊、步進電機驅動器Ⅰ、步進電機驅動器Ⅱ、步進電機驅動器Ⅲ與步進電機驅動器Ⅳ,電源轉換模塊將汽車自身的蓄電池的直流12V電壓轉換為ARM9處理器所需的直流3.3V電源,所述的電源轉換模塊通過線路連接蓄電池,所述的蓄電池(汽車蓄電池)通過線路連接步進電機驅動器Ⅰ、步進電機驅動器Ⅱ、步進電機驅動器Ⅲ與步進電機驅動器Ⅳ,所述的步進電機驅動器Ⅰ通過線路連接步進電機Ⅰ,所述的步進電機驅動器Ⅱ通過線路連接步進電機Ⅱ,所述的步進電機驅動器Ⅲ通過線路連接步進電機Ⅲ,所述的步進電機驅動器Ⅳ通過線路連接步進電機Ⅳ,所述的步進電機Ⅰ與步進電機Ⅱ配合左后視鏡鏡片使用,所述的步進電機Ⅲ與步進電機Ⅳ配合右后視鏡鏡片使用。
所述的基于人眼定位的汽車后視鏡自動調節裝置,所述的紅外攝像頭型號為OV9655。
述的基于人眼定位的汽車后視鏡自動調節裝置,所述的ARM9處理器型號為S3C2440。
所述的基于人眼定位的汽車后視鏡自動調節裝置,所述的步進電機型號為28BYJ-48。
所述的基于人眼定位的汽車后視鏡自動調節裝置,所述的步進電機驅動器型號為L298N。
本實用新型工作原理:
⑴定位區域與攝像頭位置選擇
圖2為駕駛員在車內的側視圖,正常駕駛員在車內駕駛的過程中并不需要左右移動身體,所以,不同身材駕駛員在車內的位置僅是沿著X、Y軸方向變化,圖中的原點為后視鏡片調整到最外最下極限位置時,能夠正常觀測后視鏡的駕駛員雙眼的中心位置。
圖3為駕駛員眼部的空間移動區域圖,雖然駕駛員處于車內的立體三維空間中,但是由于正常情況下駕駛員在z軸方向并不會發生移動,因此,駕駛員眼部位置僅僅在x、y方向可能發生變化,這樣,駕駛員車內的三維空間中的變化就可以簡化成一個平面內的變化,即將車內駕駛員人眼的三維空間定位簡化成為二維平面內的定位。由(0,ymax)與(xmax,0)構成的區域就是駕駛員在車內通過后視鏡可以獲得的最佳后視視野的眼部中心的區域,一般的駕駛員在正常駕駛時,眼部中心是不會超出這個區域。
為了減少定位運算時間和降低系統硬件成本,本系統使用單個攝像頭對駕駛員進行拍照,為了對駕駛員眼部X和Y方向的坐標都能夠實現精確定位,將攝像頭安裝在駕駛員前的右上方,且與X、Y、Z軸均成45度角的位置。
紅外攝像頭OV9655為130萬像素,假定安裝攝像頭的位置使采集的圖像中覆蓋由(0,ymax)與(xmax,0)構成的區域的像素數為70~100萬像素之間(不同車型由于駕駛室內空間的尺寸不同而略有不同),下面以80萬像素為例。
設:xmax=400mm,ymax=380mm,對應圖像像素約為985×812。
則:X方向每個像素代表0.41mm,Y方向每個像素代表0.46mm。圖像的定位分辨率為0.46mm,此分辨率不會對后視鏡調節結果造成影響。
⑵人眼定位坐標的矯正
OpenCV作為開源的跨平臺計算機視覺庫,可以運行在Linux、Windows和MacOS操作系統上。因此本系統要在ARM平臺實現人眼定位功能,可以交叉編譯在ARM-Linux平臺上移植OpenCV的函數庫。本文中采用的人眼定位方法是基于OpenCV的Haar_Like特征的Adaboost級聯分類器算法,通過使用OpenCV的“haarcascad_eye.xml”文件中的目標檢測分類器對圖像進行轉換,由于用的是類harr特征,因此將圖像轉化成灰度圖像,對人臉區域的2/5的部分進行搜索并找到人眼區域,最后將檢測區域返回得到一個像素值矩形區域,通過計算得到該區域的中心位置,從而獲得人眼定位的坐標(x,y)。
⑶定位坐標矯正
攝像頭是在位于駕駛員斜上方45度的位置進行拍攝,由于被拍照駕駛員與像平面不平行,則產生了非線性成像的透視畸變,因此,所得到的圖像與正面拍攝圖像存在一定的幾何畸變,由此定位所得到的坐標不能直接映射坐標的實際位置。拍攝得到的圖像與垂直x、y軸的圖像發生了幾何變化,即像素點的個數與x、y實際距離之間的關系呈現為非線性。
透視投影模型A如圖4所示,視點即攝像頭拍攝點,正視面為垂直于x、y軸拍攝的圖像畫面,而透視面則為拍攝點與x、y、z均成45度角拍攝的圖像畫面,正視圖的點到視點之間的直線與透視面會產生交點,同時,由于視點與正視面上目標點的角度及距離關系,可能會使正視面的規則矩形的邊與透視面對應邊的形狀發生了變化,因此可以看出如果正視面中的所有點都可以通過某種映射關系在透視面中獲得,則可得到正確的駕駛員眼部位置的坐標。
根據透視投影模型B如圖5所示,透視矯正的目的是要通過改變圖像的幾何結構來實現圖像的變形。當然簡單的將圖像縮放,或是將圖像的局部縮放,也可以產生所需的圖像形態變化,但是如此變化會丟失大量的圖像細節,圖像中的線條平行關系、物體大小比例等變化改變了原圖像中元素之間的關聯關系,雖然得到了易識別的規定圖形,但卻使識別結果出現了很大的誤差。正確的圖像矯正是參考現實物體在圖像中的成像規律,為原始圖像找出變換的映射關系,這樣既滿足了形狀的變化,真實物體在圖像中也可以客觀規律在圖像中呈現,保證了識別結果的真實性。
矯正問題實際上就是將一個給定的標準圖像P變換成矯正圖像P′,轉化為圖像像素的坐標變換:
P(x,y)→P′(x′,y′)
即圖像函數P中原來位于(x,y)處的值會發生位置移動,該位置變化使正視面中的坐標為(x′,y′)。對于這個過程進行建模,建立一個映射函數:將每一個透視面I上的(x,y)映射到新圖像I′中相應的目標點(x′,y′)上,即
T:I:(x,y)→I′:(x′,y′)
為了找到任意實現點集(P1,P2,P3,P4)到點集(P′1,P′2,P′3,P′4)之間的映射(其中Pi=(xi,yi)表示原圖像I中的點,P′i=(x′i,y′i)表示目標圖像I′中的點),即為解決采集圖像時不只一個維度帶來的角度偏差,需要有8個自由度的支持,用齊次坐標表示即為:
(x′,y′)為(x,y)變換后的像素坐標,注,h′為不等于0的任意值。
如圖5所示,直線被映射為直線,矩形被映射為四邊形。一般情況下,不會保持兩直線間的平行關系和距離比。在笛卡爾坐標系下,得到的映射函數:
很顯然它們的映射關系不是線性的,盡管如此,直線在這個變換的作用下還是直線。實際上,多數變換都會將2D下的直線映射為直線。它實際上將任意N次代數曲線映射為另一條N次代數曲線。特別地,圓和橢圓總是會被變換為另一個二次曲線(即圓錐曲線)。然而,與仿射變換不同的是,投影變換一般不會將平行直線映射為平行直線,也不會保持直線上點之間的距離比例。
為確定上式中8個未知變換參數a11…a32,可以通過解線性方程組來求得,需參照給定的四對對應點(P1,P′1)…(P4,P′4)。帶入(2)、(3)式,可得到一對線性方程:
將得到的8個方程聯合起來用矩陣的形式表示為:
求解線性方程組即可。
本文提出的矯正算法,用單位正方形作為特征信息載體,實現待矯正坐標所形成的區域轉化到規則的坐標的區域。
圖6中是通過兩步投影映射可以實現從任意四邊形到規定矩形的變換。首先,通過逆映射函數T1-1將四邊形S1變換到單位正方形S0,由前一過程檢測出的畸變特征點提供映射的計算條件。然后,T2將單位正方形S1變換到目標矩形S2,由三維世界中物體的實際比例確定映射的計算條件。完整的映射T可以分解為映射T1-1和T2,即
x=T(x′)=T2(T1-1(x′))
單位正方形到任意四邊形的表達方程可簡化為:
對于未知的變換參數a11…a32,該方程組有下述閉式解:
即得到x′到x的映射關系,但映射點有可能不是原圖像中某一像素點,而是在4點圍成的區域內,通過距離比對,選取距離更近的點的像素值作為變換之后的像素值。數字圖像中圖像元素的坐標是離散的整數值,使用本方法將一幅離散圖像轉換為另一幅離散圖像時不會帶來質量的下降,以保證后續定位的準確性。
⑷矯正坐標與后視鏡角度的關系
由于左右兩個后視鏡的位置與駕駛員的距離不同,因此,它們的調節參數也各不相同,同樣獲得的坐標后視鏡調節關系也會有所區別,但是計算后視鏡角度的方法是相同的,僅僅只是系數不同而已,下面計算矯正后的坐標與后視鏡角度的關系以左后視鏡駕駛員能夠觀察到車外最佳視野為例。
后視鏡片內外移動范圍如圖7所示,當駕駛員的眼部位置沿著x軸向前(后)移動時,后視鏡鏡片需要沿i軸的中心點運動,相對于后視鏡的左邊沿的U點向內(外)旋轉。
在當后視鏡片對應圖3中y=0位置時,即圖5后視鏡片在最外的極限位置時設為0度角,后視鏡片向內直至極限所轉動的角度為α,此時,對應駕駛員眼部位置向前移動的距離則為xmax,可以看出駕駛員眼部位置移動的距離與后視鏡片調節的角度成一定的比例關系。
設:內外調節參數為a,可得到:
α=axmax (8)
后視鏡片上下移動范圍如圖8所示,當駕駛員的眼部位置沿著Y軸向上(下)移動時,后視鏡鏡片需要沿i軸的中心點運動,即相對于后視鏡上沿的V點向后(前)旋轉。
當后視鏡片在對應圖3中x=0位置時,即后視鏡片在最上的極限位置時設為0度角,后視鏡片向直至極限所轉動的角度為β,此時對應駕駛員眼部位置向上移動的距離則為ymax。
設:上下調節參數為b,可得到:
β=bymax (9)
如果通過圖像對駕駛員眼部定位的坐標為(x,y),帶入式(2)、(3)矯正后得到駕駛員所在車內實際位置坐標為(x′,y′),則可以計算得到所需的后視鏡片內外、上下調節旋轉角度分別是:
其中:βk-1、βk分別為后視鏡所處角度和本次調節的角度,當△α或△β值為正時,控制步進電機正轉,當△α或△β值為負時,控制步進電機反轉。從而得到后視鏡從原點起所需內外、上下分別調節旋轉的角度(△α,△β)。
⑸后視鏡旋轉角度與步進電機脈沖值關系
28BYJ-48是四項八拍的步進電機,其步距角度為5.625/64度,該步進電機的輸出軸轉一圈需要4096個脈沖信號,通過控制輸出脈沖數目,可以精確地控制步進電機的轉動圈數,從而達到精確地控制后視鏡片旋轉角度的目的。
設:圖7中后視鏡片沿i軸旋轉1度時步進電機組需要輸入n個脈沖,圖8中后視鏡片沿j軸旋轉1度時步進電機組需要輸入m個脈沖(m、n分別為步進電機轉動角度與后視鏡片旋轉角度的轉換比率,同時不同結構的后視鏡會導致m、n發生變化,其數值取決于后視鏡的機械轉換結構)。
則:當駕駛員眼部定位的坐標為(x′,y′)時,需要給兩個步進電機的脈沖數分別為
式(12)中T表示圖7中后視鏡內外旋轉調節脈沖數,L表示圖8中后視鏡的上下旋轉調節脈沖數。ARM9處理器通過得到的T、L兩個脈沖數值,發送信號給步進電機驅動器來驅動步進電機的運行。
當然,上述說明并非是對本實用新型的限制,本實用新型也并不僅限于上述舉例,本技術領域的技術人員在本實用新型的實質范圍內所做出的變化、改型、添加或替換,也應屬于本實用新型的保護范圍。