文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.06.023
中文引用格式: 裴成龍,魏智鵬,楊亮. 基于ARM的四攝像頭光學(xué)觸摸屏系統(tǒng)研制[J].電子技術(shù)應(yīng)用,2016,42(6):84-86.
英文引用格式: Pei Chenglong,Wei Zhipeng,Yang Liang. Four camera optical touch screen system developed based on the ARM[J].Application of Electronic Technique,2016,42(6):84-86.
0 引言
隨著計(jì)算機(jī)交互技術(shù)的快速發(fā)展,觸摸屏因其具有操作便捷、人機(jī)交互性強(qiáng)等特點(diǎn),已被廣泛應(yīng)用于現(xiàn)有生活中。目前其技術(shù)大多應(yīng)用在一些小尺寸便攜式設(shè)備中,如手機(jī)、平板電腦、電子游戲機(jī)等,這是因?yàn)楝F(xiàn)有的電阻式或電容式觸摸屏都是通過(guò)一些硬件材料來(lái)實(shí)現(xiàn)觸摸技術(shù),如果將這些技術(shù)應(yīng)用在超大尺寸觸摸屏上,將會(huì)產(chǎn)生價(jià)格昂貴、通用性差等眾多普通用戶無(wú)法接受的問(wèn)題[1]。科技和市場(chǎng)迫切需要出現(xiàn)一種新的觸摸式交互技術(shù)。
基于以上需求,通過(guò)采用圖像識(shí)別技術(shù)研制了四攝像頭光學(xué)觸摸屏系統(tǒng),該系統(tǒng)通過(guò)安裝在4個(gè)頂點(diǎn)的COMS圖像傳感器同步采集觸摸屏交互區(qū)域的圖像,采集的圖像數(shù)據(jù)利用ARM微處理器的DCMI接口實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),然后對(duì)圖像數(shù)據(jù)進(jìn)行觸摸點(diǎn)圖像檢測(cè),根據(jù)觸點(diǎn)的成像位置和攝像頭標(biāo)定的光心位置得到4條觸點(diǎn)方向的直線,最后通過(guò)任意兩條直線相交來(lái)定位觸點(diǎn)的位置。該系統(tǒng)通過(guò)視覺(jué)成像檢測(cè)技術(shù)解決了超大觸摸屏價(jià)格昂貴的問(wèn)題,同時(shí)又保留了原有系統(tǒng)方便、靈活的特點(diǎn)。
1 系統(tǒng)方案設(shè)計(jì)
系統(tǒng)由人機(jī)交互顯示屏、圖像采集模塊、數(shù)據(jù)處理模塊、ARM微處理器模塊、觸點(diǎn)定位顯示模塊五部分組成,如圖1所示。
該系統(tǒng)的總體設(shè)計(jì)思路是在一個(gè)矩形的人機(jī)交互屏的4個(gè)頂點(diǎn)上安裝CMOS攝像頭,對(duì)交互屏區(qū)域同步采集圖像。每個(gè)攝像頭都由一個(gè)數(shù)據(jù)處理模塊驅(qū)動(dòng)控制,接收攝像頭采集到的數(shù)據(jù)并進(jìn)行處理。ARM微處理器整合分析數(shù)據(jù)處理模塊發(fā)送的數(shù)據(jù)構(gòu)建觸點(diǎn)方向的直線坐標(biāo)方程,結(jié)合攝像頭標(biāo)定算法計(jì)算出觸點(diǎn)位置坐標(biāo),并將其結(jié)果顯示在定位液晶屏上。
2 硬件平臺(tái)設(shè)計(jì)
本系統(tǒng)的硬件框架(人機(jī)交互屏)為一個(gè)47英寸的16:9的矩形框。主控芯片采用ARM Cortex-M3系列的STM32F407VGT6,時(shí)鐘頻率168 MHz,這為大量的圖像數(shù)據(jù)處理提供了足夠的運(yùn)算速度[2]。該芯片提供了DCMI攝像頭數(shù)據(jù)接口,利用DCMI接口,攝像頭采集到的數(shù)據(jù)可以迅速輸入到DCMI緩存器,并且可以利用硬件DMA將數(shù)據(jù)直接送到液晶顯示或者送到內(nèi)部RAM中,以便數(shù)據(jù)的處理。芯片屬于大容量存儲(chǔ),自帶的RAM達(dá)到64 KB,為圖像存儲(chǔ)提供了足夠的存儲(chǔ)空間。
圖2是圖像傳感器OV7670與ARM微處理器STM-32F407的連接方式。
ARM微處理器的時(shí)鐘輸出引腳CLKOUT為傳感器OV7670提供24 MHz時(shí)鐘信號(hào)。圖像傳感器像素時(shí)鐘輸出PCLK為ARM微處理器提供外部參考時(shí)鐘。將OV7670的像素信號(hào)、行信號(hào)、幀信號(hào)分別與DCMI的像素信號(hào)、行信號(hào)、幀信號(hào)引腳相連接,每當(dāng)檢測(cè)到DCMI_CLK信號(hào)的上升沿時(shí),圖像傳感器就將一個(gè)8 bit數(shù)據(jù)寫(xiě)入DCMI緩沖區(qū)中,實(shí)現(xiàn)圖像數(shù)據(jù)的同步傳輸。行信號(hào)(HREF)高電平期間使DCMI數(shù)據(jù)緩沖區(qū)寫(xiě)有效,保證傳輸有效的圖像數(shù)據(jù)。場(chǎng)信號(hào)(VSYNC)中斷ARM微處理器新一幀圖像的到來(lái)以達(dá)到與CMOS圖像場(chǎng)同步的目的。傳感器的數(shù)據(jù)輸出管腳Y[7:0]和ARM微處理器的DCMI_D[7:0]相連,傳輸實(shí)際的圖像數(shù)據(jù)。
3 軟件算法設(shè)計(jì)
系統(tǒng)軟件流程如圖3所示,首先系統(tǒng)進(jìn)行初始化,根據(jù)攝像頭的安裝位置和角度完成攝像頭的標(biāo)定,獲得整個(gè)系統(tǒng)攝像頭的光心坐標(biāo),然后攝像頭采集完一幀圖像,通過(guò)圖像處理單元進(jìn)行二值化處理,ARM微處理器進(jìn)行觸點(diǎn)檢測(cè),若存在觸摸點(diǎn)則將計(jì)算其坐標(biāo)并在液晶屏實(shí)時(shí)跟蹤顯示,否則重復(fù)進(jìn)行下一幀圖像操作。
3.1 觸摸點(diǎn)識(shí)別
主控芯片通過(guò)I2C總線(SCL與SDA)控制圖像傳感器OV7670,該圖像傳感器幀率最高達(dá)到30幀/s,分辨率為320×240,輸出數(shù)據(jù)格式為RGB656或YUV。本設(shè)計(jì)用一個(gè)控制器實(shí)現(xiàn)對(duì)四路攝像頭圖像的同步采集。為了節(jié)省圖像存儲(chǔ)空間和提高圖像的采樣率,將每路攝像頭的圖像開(kāi)窗成320×5,在一幀圖像的時(shí)間內(nèi)完成四路攝像頭數(shù)據(jù)的傳輸。將采集到的圖像二值化后,在沒(méi)有接觸物觸摸的情況下,攝像頭采集到的是觸摸屏四周的白色擋板,成一條白色的亮帶;如果有觸摸物(手指),則會(huì)在亮帶相應(yīng)的地方出現(xiàn)陰影。二值化后的圖像如圖4所示。
3.2 觸摸點(diǎn)定位
根據(jù)攝像頭成像特性,從攝像頭光心出發(fā)的某直線上的所有觸點(diǎn)目標(biāo)在攝像頭中將成像在同一位置,從而攝像頭采集的亮帶圖像的陰影位置代表了觸點(diǎn)目標(biāo)在該攝像頭中的方向。通過(guò)對(duì)每路攝像頭的內(nèi)外參數(shù)和光心位置進(jìn)行標(biāo)定[3](此過(guò)程稱為攝像頭標(biāo)定),對(duì)其在每路攝像頭中的成像位置和在交互區(qū)的物理位置進(jìn)行標(biāo)定,則可為每個(gè)觸點(diǎn)目標(biāo)分別構(gòu)建在每路攝像頭中的方向線。融合四路攝像頭采集到的觸點(diǎn)目標(biāo)圖像,構(gòu)建觸點(diǎn)目標(biāo)在每路攝像頭中的方向線,聯(lián)立這4條線構(gòu)成的方程組求解,得到的解即為觸點(diǎn)位置,從而實(shí)現(xiàn)觸點(diǎn)目標(biāo)的定位。
3.2.1 單點(diǎn)觸摸定位
只有一個(gè)觸點(diǎn)時(shí),系統(tǒng)會(huì)求得觸點(diǎn)與4個(gè)攝像頭之間連線的坐標(biāo)方程,如圖5所示。此時(shí)只需聯(lián)立任意兩個(gè)直線方程組,便可求得觸點(diǎn)的位置。為了提高單點(diǎn)觸摸定位的精確度,可通過(guò)求出任意兩兩直線的交點(diǎn),然后將得到的交點(diǎn)求平均值,所得便是觸點(diǎn)位置坐標(biāo)。
3.2.2 兩點(diǎn)觸摸定位
兩點(diǎn)觸摸時(shí)觸點(diǎn)坐標(biāo)的計(jì)算原理基本相同,但是要注意對(duì)偽點(diǎn)的判斷剔除。偽點(diǎn)是指由于光學(xué)觸控系統(tǒng)本身實(shí)現(xiàn)原理的限制[4],使得在兩點(diǎn)或者多點(diǎn)觸摸時(shí)會(huì)產(chǎn)生一些實(shí)際不存在的“假點(diǎn)”,從而出現(xiàn)觸點(diǎn)位置不準(zhǔn)確的現(xiàn)象。
如圖6所示,P1、P2為目標(biāo)觸點(diǎn),1號(hào)攝像頭會(huì)引出兩條直線L11和L12,2號(hào)攝像頭會(huì)引出兩條直線L21和L22,那么求出來(lái)的交點(diǎn)就有4個(gè)(兩個(gè)觸點(diǎn)與攝像頭在一條直線上的情況除外),但是實(shí)際上只有兩個(gè)真實(shí)觸點(diǎn)P1和P2,那么另外兩個(gè)就是偽點(diǎn),如圖中的F1和F2。去除偽點(diǎn)的方法便示,L31與1號(hào)攝像頭的兩條直線交于P1和一個(gè)偽點(diǎn),L32與2號(hào)攝像頭的兩條直線交于P2和另一個(gè)偽點(diǎn),所以只要在程序中加個(gè)判斷:1號(hào)攝像頭和2號(hào)攝像頭的直線方程組求得的交點(diǎn)集合與3號(hào)攝像頭和1號(hào)、2號(hào)攝像頭的直線方程組求得的交點(diǎn)集合的交集便是觸點(diǎn)。
4 實(shí)驗(yàn)分析
系統(tǒng)運(yùn)行時(shí),采用的圖像序列分辨率為320×5像素,攝像頭采樣率為30 幀/s,系統(tǒng)實(shí)時(shí)跟蹤顯示觸摸點(diǎn)位置。為了對(duì)系統(tǒng)的觸點(diǎn)定位誤差進(jìn)行分析,在觸摸區(qū)粘貼上網(wǎng)格坐標(biāo)紙,然后用戶用手指對(duì)整個(gè)區(qū)域任意位置進(jìn)行觸摸測(cè)試,記錄系統(tǒng)觸摸定位坐標(biāo)值和相應(yīng)網(wǎng)格坐標(biāo)實(shí)際值的數(shù)據(jù)。分析測(cè)試結(jié)果如表1所示。
實(shí)驗(yàn)結(jié)果表明,單點(diǎn)觸摸定位誤差相對(duì)于兩點(diǎn)觸摸要低,而由于受到攝像頭視角的限制,觸摸屏的四角區(qū)域的定位誤差比中間區(qū)域稍大,但系統(tǒng)的最大誤差率小于2%。
5 結(jié)論
本系統(tǒng)運(yùn)用攝像頭標(biāo)定和圖像識(shí)別技術(shù),實(shí)現(xiàn)47英寸光學(xué)觸摸屏系統(tǒng)的設(shè)計(jì)。ARM Cortex-M3微處理器采用STM32F407VGT6芯片,選用4個(gè)OV7670攝像頭模組進(jìn)行圖像的采集,將觸摸點(diǎn)位置和坐標(biāo)顯示在2.8寸TFT彩色液晶顯示屏上。系統(tǒng)實(shí)現(xiàn)單點(diǎn)觸摸和兩點(diǎn)觸摸的定位、跟蹤,并在LCD上顯示實(shí)際的物理坐標(biāo)和軌跡,定位誤差小于2%,能迅速響應(yīng)點(diǎn)擊、放大、縮小觸摸操作。
參考文獻(xiàn)
[1] 董士海.人機(jī)交互的進(jìn)展及面臨的挑戰(zhàn)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004,16(1):1-13.
[2] 周亦鵬.雙目視覺(jué)技術(shù)在計(jì)算機(jī)輔助檢測(cè)中的應(yīng)用研究[J].計(jì)算機(jī)測(cè)量與控制,2008,16(5):47-60.
[3] 黃侃.計(jì)算機(jī)立體視覺(jué)中的攝像機(jī)標(biāo)定算法的研究與應(yīng)用[D].沈陽(yáng):沈陽(yáng)工業(yè)大學(xué),2007.
[4] 王德鑫,張茂軍.四路攝像頭分組重建的多觸點(diǎn)定位方法[J].電子與信息學(xué)報(bào),2010,32(2):495-499.