文獻(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.