基于AVR單片機的自由立體顯示背光控制系統(tǒng)
摘要:為實現(xiàn)立體顯示,設(shè)計并實現(xiàn)了基于單片機的LED背光控制系統(tǒng)。該系統(tǒng)采用單片機ATmega128為控制處理器,加以外圍電路,利用RS 232接口實現(xiàn)與PC機人眼跟蹤模塊的實時通信。同時,充分利用下位機資源,在單片機上實現(xiàn)Kalman濾波,提高人眼定位精度,并利用Kalman預(yù)測,將跟蹤速率提高一倍,有效減輕了顯示器的閃爍現(xiàn)象。
關(guān)鍵詞:自由立體顯示;LED;ATmega128;RS 232;Kalman濾波
0 引言
人眼視覺是立體的,立體的視覺帶給人類的不僅僅是可以判斷觀看對象的空間狀態(tài),它和顏色一起,使這個世界更加豐富多彩、變化萬千。2010年伊始,隨著立體電影《阿凡達(dá)》的熱映,在世界各地掀起了一股3D的熱潮,3D技術(shù)成為各界關(guān)注的焦點。三菱、索尼、LG、三星等各大顯示器廠商相繼推出自己的立體電視,并寄希望于立體電視市場的開發(fā)。
立體顯示技術(shù)經(jīng)歷了多年的發(fā)展,無論在顯示質(zhì)量,還是實現(xiàn)方法上都有了很大的進(jìn)步,自由立體顯示由于不需要佩戴任何輔助工具,因此正在成為立體顯示發(fā)展的方向。其中,以LCD為基礎(chǔ),基于視差的立體顯示技術(shù)由于技術(shù)成熟且實現(xiàn)工藝不復(fù)雜,成為最有可能實現(xiàn)商業(yè)化的熱門技術(shù)之一。基于AVR單片機的自由立體顯示系統(tǒng)正是在這一技術(shù)的基礎(chǔ)上,利用特殊的光學(xué)部件和LED照明陣列實現(xiàn)的。
Kalman濾波是一種線性最小方差估計,算法采用遞推形式在時域內(nèi)濾波,數(shù)據(jù)存儲量小,預(yù)測精度高,適用于對多維隨機過程進(jìn)行估計,這個估計可以是對當(dāng)前目標(biāo)位置的估計(濾波),也可以是對于將來位置的估計(預(yù)測)。常用于從一組有限的,包含噪聲的,對物體位置的觀察序列中得到關(guān)于物體位置的好的估計。在自由立體顯示系統(tǒng)中,單片機在進(jìn)行電路控制的同時還對人眼位置信息進(jìn)行Kalman濾波和預(yù)測。
1 系統(tǒng)的工作原理及總體方案設(shè)計
1.1 立體顯示的實現(xiàn)原理
視差立體的實現(xiàn)原理是將一對立體圖像分別送入人的左右眼睛,經(jīng)過大腦融合后就可以產(chǎn)生立體效果。根據(jù)這一原理,設(shè)計了一款立體顯示器,17寸LCD的奇數(shù)行和偶數(shù)行分別顯示左右立體圖像,光學(xué)部分利用菲涅爾透鏡控制光路的走向,垂直分光裝置使位于不同垂直位置的兩組LED背光源只能分別照亮LCD屏幕的奇數(shù)行或偶數(shù)行,如圖1所示。同時,兩組光源的水平位置也有差別,這樣就為左右眼分別提供了只能看到奇數(shù)行或偶數(shù)行的可視區(qū)域,如圖2所示。當(dāng)觀察者在屏幕前自由移動的時候,通過攝像頭探測到人眼的位置信息,用單片機控制LED照明陣列在適當(dāng)?shù)牡胤近c亮,保證始終提供正確的可視區(qū)域,實現(xiàn)自由立體顯示。
[!--empirenews.page--]
1.2 基于單片機的Kalman濾波的預(yù)測實現(xiàn)
Kalman信號模型包括狀態(tài)方程和測量方程。狀態(tài)方程描述了系統(tǒng)當(dāng)前狀態(tài)和前一狀態(tài)的狀態(tài)轉(zhuǎn)移關(guān)系。如下所示:
平穩(wěn)條件下,Q,R是恒定的。Kalman濾波的過程就是根據(jù)觀測值和信號模型恢復(fù)出原始信號的過程。
濾波器的輸出由式(4)給出:
式中:稱為測量過程的革新或殘余,它代表了預(yù)期的測量值和實際測量值之間的誤差;K是增益因子,用于最小化后驗均方誤差,在濾波過程中會動態(tài)發(fā)生改變,如果測量更準(zhǔn)確K將越大,模型估計越準(zhǔn)確K越小。K的值和模型估計誤差P相關(guān)聯(lián),K和P由下面式子迭代算出。
式(5),式(6)為Kalman濾波的預(yù)測階段,使用上一狀態(tài)的估計,做出對當(dāng)前狀態(tài)的估計。式(7)~(9)為Kalman濾波的更新階段,利用對當(dāng)前狀態(tài)的觀測值優(yōu)化在預(yù)測階段獲得的預(yù)測值,以獲得一個更精確的濾波值。
Kalman濾波預(yù)測跟蹤有一個啟動過程,經(jīng)過若干次迭代后。Kalman濾波才會趨于穩(wěn)定。在該系統(tǒng)中,采用勻速直線運動模型,狀態(tài)方程為:
式中:x(n)代表眼睛(左眼或右眼)位置的水平坐標(biāo);v(n)代表眼睛運動的速度;t代表時間間隔;wk-1代表這兩個變量的模型誤差,它的協(xié)方差陣定義為:
[!--empirenews.page--]
對于模型參數(shù)Q11,Q22和R,由PC機輔助計算得到。給定一組測量位置和實際位置,在Q11,Q22,R三維空間按等量的方法選取格點,分別訓(xùn)練不同參數(shù)下的Kalman濾波器對檢測數(shù)據(jù)進(jìn)行濾波,如果濾波后的位置與真實值越接近,就說明這組濾波器參數(shù)越優(yōu)秀。得到了最優(yōu)參數(shù)后,就可以按照前面的介紹,進(jìn)行不斷“預(yù)測一修正”的Kalman濾波,獲得精度更高的人眼位置(式(8)),并利用式(5)預(yù)測t/2時間后的人眼位置,此時增益矩陣:
1.3 系統(tǒng)的總體方案設(shè)計
自由立體顯示系統(tǒng)由計算機、RS 232通信電路、單片機控制電路、驅(qū)動電路和LED照明陣列電路組成,結(jié)構(gòu)框圖如圖3所示。
上位機完成人眼檢測算法,并且把人眼位置信息通過RS 232送給單片機。單片機選擇AVR系列中功能最強的ATmega128,主要完成對人眼位置數(shù)據(jù)的處理,然后按照一定的時序發(fā)送給驅(qū)動芯片。控制電路更新LED照明陣列時,按地址逐個發(fā)送數(shù)據(jù)“1”或“0”,控制每一列LED的點亮與否。
2 硬件設(shè)計
2.1 驅(qū)動電路
根據(jù)背光源亮度恒定的要求,LED陣列的驅(qū)動采用聚積科技生成的16位恒流LED驅(qū)動芯片MBI5026,其內(nèi)建的CMOS移位緩存器與栓鎖功能,可以將串行輸入的數(shù)據(jù)轉(zhuǎn)換成并行輸出的格式,電流的輸出值可以通過一個外接電阻進(jìn)行調(diào)整,高達(dá)25 MHz的時鐘頻率可以滿足大量數(shù)據(jù)傳輸?shù)囊蟆?br />
2.2 控制電路
ATmega128是ATMEL公司推出的一款8位RISC結(jié)構(gòu)高速低功耗單片機,在16 MHz時鐘頻率時系統(tǒng)性能可達(dá)16 MIPS,內(nèi)帶128 KB的FLASHRO M,4 KB的E2PROM、4 KB系統(tǒng)SRAM;可擴展64 KB外部存儲器;兩個8位定時器/計數(shù)器,兩個16位定時器/計數(shù)器;兩路UART通信口,可工作在異步或同步方式。在與上位機通信的過程中,需要采用MAX232電平轉(zhuǎn)換芯片將PC機串口輸出的RS 232電平轉(zhuǎn)換成單片機能接受的TTL電平。
3 軟件設(shè)計
軟件設(shè)計的總體思路是PC機檢測到人眼的位置信息,給出左眼的位置數(shù)據(jù)和右眼的位置數(shù)據(jù),單片機在得到這兩個數(shù)據(jù)后,啟動TC1開始t/2時間的定時,同時開始Kalman濾波,使用由式(8)得到的濾波值刷新LED照明陣列。定時器中斷服務(wù)處理程序主要包括清零TCCR1B以停止定時器,按照t/2時刻人眼位置的預(yù)測值刷新LED照明陣列。這樣,在人眼檢測速率為每秒25幀的情況下,可以將LED的刷新速率提升到每秒50次,有效減輕了可視區(qū)域隨觀察者位置變化而帶來的跳躍感。
程序?qū)崿F(xiàn)對系統(tǒng)的初始化,包括I/O端口的初始化、TC1的初始化、中斷設(shè)置、串行口工作方式選擇、各種變量的初值裝入。波特率設(shè)置為115 200 b/s,數(shù)據(jù)格式采用8位數(shù)據(jù)位,1位起始位,1位停止位。初始化完成后,程序進(jìn)入等待狀態(tài),若上位機發(fā)送數(shù)據(jù),則進(jìn)入相應(yīng)的串行口中斷服務(wù)處理程序,如圖4所示。
[!--empirenews.page--]
4 實驗
在實驗中采用NASA的航拍視差圖像對,觀看距離490~550 mm,觀看視角±30°以內(nèi)。實際得到的圖像如圖5所示,其中圖5(a)是觀察者左眼看到的圖像。圖5(b)是觀察者右眼看到的圖像,由于這兩幅圖像存在視差,最終就會在大腦中融合成一幅具有立體感的圖像。
Kalman預(yù)測使得LED背光的刷新頻率由25 Hz提高到50 Hz,跳動感有所減弱。此外,為了驗證Kalman濾波算法的效果,手工標(biāo)記了1 500幀圖片中左右兩眼的精確位置,單片機通過串口將濾波值以及1/2幀處的預(yù)測值回發(fā)給上位機。定義:
式中:△反映了與真實值的偏移程度。Kalman平衡濾波前,△1=25.56;濾波后,△2=20.45,檢測偏差改善了19.99%,由圖6可以直觀地看出平衡Kalman濾波改善了定位的效果。
5 結(jié)語
本文介紹的自由立體顯示系統(tǒng)只需要一對立體圖片,就可以獲得很好的立體效果。采用價格合理、性能優(yōu)越的單片機控制系統(tǒng),保證了性能與成本的兼顧。基于勻速運動模型的Kalman濾波器成功改善了系統(tǒng)的性能。